首页 > 编程知识 正文

索引数据结构,mysql使用的数据结构

时间:2023-05-05 07:32:07 阅读:24797 作者:1511

一.个人资料

mysql索引的数据结构是树,常用的存储引擎innodb采用b树。 这里是B Tree及其相关的

找棵树简单介绍。

二.各种检索树

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

两股排序树是最简单的搜索树,具有特点。

a )是二叉树

b )左侧子树的所有节点的值都小于其父节点的值,右侧子树的所有节点的值都大于其父节点的值。

2、平衡二叉树(也称为AVL树) )。

在平衡二叉树是二叉树的基础上,限制树的深度可以减少查找比较的次数,

特点:

a )是二叉树

b )左侧子树的所有节点的值小于其父节点的值,右侧子树的所有节点的值大于其父节点的值;

c )左边子树与右边子树深度差在-1、0、1以内。 否则,旋转调整子树。

3、B-树(B-树)。

B-树是多重平衡搜索树,相对于平衡二叉树,与父节点直接的子节点的数量不再限定于2,

通过指定m (自定义),可以保存更多节点,而不会增加树的深度。

-树通常用于文件系统。

特点:

a )树中的每个节点最多有一个m (自定义)子节点。

b )如果根节点不是叶节点,则至少有两个子节点;

c )除根节点外的所有非叶节点,至少m/2取子节点整体;

d )父节点下最左边子树的所有节点的值都小于父节点的最小值,

最右边子树的所有节点的值都大于父节点的最大值,

其余中间子树的所有节点的值都在指针父节点两侧的值上;

e )所有叶子的节点在同一层

注意:所有节点都有值

4、b树(b树) )。

b树是B-树变化,对于B-树,叶节点的值包含所有的值,所有的父节点的值是重复叶节点的值,

父节点只起到索引检索的作用,同时叶子节点也构成了有序的链表。

在mysql中,存储引擎是innodb的索引,数据结构是b树。

特点:

a )具有m个子节点的父节点中有m个关键字;

b )所有叶节点包含所有关键字(值),从小到大依次构成链表;

c )所有非叶节点充当索引,且节点仅包括子树中所有节点的最大值;

d )所有叶子的节点都在同一层

注:叶子节点包含所有关键字(值)。

5、B*树(B*树)。

B*树是b树的一个变体,在b树中添加了指向同一非叶节点的指针。 也就是说,同一非叶节点也构成了链表。

三.总结

如上所述,上述各种搜索树是相互关联的。

mysql中归结为innodb索引是像集群索引那样采用b树,用主键收集数据,采用b树来实现的

这是索引,也是mysql的数据存储结构。 叶节点包含所有数据,而非叶节点仅用作索引(

如果未定义主键,innodb将主键隐式定义为群集索引。)。

有关更多有关MySQL的技术文章,请参阅MySQL教程部分。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。