当前位置:首页 > MySQL教程 > 正文内容

mysql索引的数据结构是什么【MySQL教程】,mysql,索引,数据结构

搜教程4年前 (2019-12-01)MySQL教程182

一、简介

mysql索引的数据构造是树,经常运用的存储引擎innodb采纳的是B+Tree。这里对B+Tree及其相干的

查找树举行扼要引见。

二、种种查找树

1、二叉排序树(也称为二叉查找树)

二叉排序树是最简朴的查找树,特性:

a)是一棵二叉树;

b)左子树一切结点的值小于它的父结点的值,右子树一切结点的值大于它的父结点的值。

2、均衡二叉树(又称AVL树)

均衡二叉树是二叉排序树的基础上,对树的深度举行了限定,从而减少了查找比较的次数,

特性:

a)是一棵二叉树;

b)左子树一切结点的值小于它的父结点的值,右子树一切结点的值大于它的父结点的值;

c)左子树与右子树的深度差在-1、0、1内,不然对子树举行扭转调解。

3、B-树(B-Tree)

B-树是多路均衡查找树,相对于均衡二叉树,对父结点的直接子结点个数,不再仅限于2,

能够指定m(自定义),如许能够在树的深度不大批增添的前提下,保留更多的结点。

B-树是通常在文件体系中运用。

特性:

a)树的每一个结点最多有m(自定义)子结点;

b)若根结点不是叶子结点,则至少有两个子结点;

c) 除根结点外的一切非叶子结点,至少有m/2上取整个子结点;

d)父结点下的最左侧子树一切结点的值均小于父结点最小值,

最右侧子树一切结点的值均大于父结点最大值,

其他中心子树一切结点的值则介于指针的父结点双方的值;

e)一切叶子结点都在统一层;

注重:一切结点均带有值

4、B+树(B+Tree)

B+树是B-树变体,相对于B-树,叶子结点的值包括了一切的值,一切父结点的值是反复了叶子结点的值,

父结点只起索引查找的作用,同时所叶子结点也也组成了一条有序的链表。

mysql中存储引擎为innodb的索引,采纳的数据构造等于B+树。

特性:

a)有m个子结点的父结点就有m个关键字;

b)一切叶子结点包括了一切关键字(值),且组成由小到大的有序链表;

c) 一切非叶子结点起索引作用,结点仅包括子树一切结点的最大值;

d)一切叶子结点都在统一层;

注重:叶子结点包括了一切的关键字(值)。

5、B*树(B*Tree)

B*树是B+树的变体,相对B+树,增添了对统一层非叶子结点的指针,即统一层非叶子结点也组成了一条链表。

三、总结

综上,上述种种查找树是互相关联的。

归结到mysql中innodb索引,采纳的是B+树,如聚簇索引,是经由过程主键来群集数据,采纳B+树完成,

这等于一种索引,也是mysql的一种数据存储构造,叶子结点包括了一切的数据,非叶子结点仅起索引作用(若

没有定义主键,则innodb会隐式定义一个主键来作为聚簇索引)。

更多MySQL的相干技术文章,请接见MySQL教程栏目举行进修!

以上就是mysql索引的数据构造是什么的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16189.html

分享给朋友:

“mysql索引的数据结构是什么【MySQL教程】,mysql,索引,数据结构” 的相关文章

mysql数据库在Centos7下没法长途衔接的缘由以及处理详解【MySQL教程】,Centos7,mysql,数据库

MySQL是由Oracle公司开辟的开源SQL数据库治理体系,下面这篇文章重要给人人引见了关于在Centos7下没法长途衔接mysql数据库的缘由与处理要领,文中经由过程示例代码引见的异常细致,须要的朋侪能够参考自创,下面来一同看看吧。 媒介 近来在工作中遇到一个题目,发如今Centos7体...

MySQL中的常用工具的实例总结【MySQL教程】,MySQL,常用工具,总结

MySQL数据库以体积小、速度快、整体具有本钱低等长处,深受宽大中小企业的喜欢,下面这篇文章重要给人人引见了关于MySQL中经常使用东西的相干材料,须要的朋友们能够参考进修,下面来一同看看吧。 媒介 本文重要给人人引见了关于MySQL经常使用东西的相干内容,分享出来供人人参考进修,下面话不多...

MySQL怎样挑选适宜的引擎以及举行引擎的转换【MySQL教程】,MySQL,引擎,合适

我们怎样挑选适宜的引擎?这里简朴归结一句话:“ 除非须要用到某些InnoDB不具备的特征,而且没有其他要领能够替换,不然都应该优先挑选InnoDB引擎。” 除非万不得已,不然不发起夹杂运用多种存储引擎,不然能够带来一系列庞杂的题目以及一些潜伏的BUG。 运用差别引擎斟酌的几大要素:...

Mysql删除反复数据保存最小的id【MySQL教程】,Mysql,保留,数据

在网上查找删除反复数据保存id最小的数据,要领以下: DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM...

Mysql中的Datetime和Timestamp不同之处【MySQL教程】,Timestamp,Datetime,Mysql

mysql中用于示意时刻的三种范例date, datetime, timestamp (如果算上int的话,四种) 比较轻易殽杂,下面就比较一下这三种范例的异同 相同点 都能够用于示意时刻都呈字符串显现 不同点 1.望文生义,date只示意'YYYY-MM-DD'情势的日期,dateti...

char、varchar、nchar、nvarchar、text之间有哪些区分【MySQL教程】,nvarchar,varchar,nchar

char、varchar、nchar、nvarchar、text的区分 1.有var前缀的,示意是现实存储空间是变长的,varchar,nvarchar 所谓定长就是长度牢固的,当输入的数据长度没有到达指定的长度时将自动以英文空格在其背面添补,使长度到达响应的长度,当你输入的字符大于指定的数...