首页 > 编程知识 正文

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

时间:2023-05-03 11:07:37 阅读:24755 作者:393

MyISAM是MySQL 5.5之前的默认存储引擎,5.5之后,InnoDB开始成为MySQL的默认存储引擎。

MyISAM使用B-Tree实现主键索引、唯一索引和非主键索引。

在InnoDB中,非主键索引使用B-Tree数据结构,主键索引使用B-Tree。

B-树

B-tree (多重搜索树,不是两股)是常见的数据结构。 B-tree结构大大减少了搜索记录时出现的中间过程,从而加快了访问速度。 根据翻译,b通常被认为是Balance的简称。 该数据结构一般用于数据库索引,综合效率高。

性能(推荐学习(MySQL视频教程) ) )。

B-tree具有以下特性:

1、关键词集合分布在整棵树上;

2、出现任意一个关键词,只出现在一个节点上;

3、搜索可能在非叶节点结束

4、其检索性能与在关键词全集内进行二分检索一次相当;

5、自动分层控制;

b树

不同的存储引擎可能使用不同数据结构的存储,InnoDB使用b树;

B Tree是什么?

b树是文件系统所需的B-Tree的变形树,m次b树和m次B-树的区别为:

因为b和B-即b )的关键字在每个节点都不同。 多一个少一个。

在b树的情况下,节点结构与B-tree相同,但不同的是各节点的关键字和可以具有的子节点数。 像m次b树一样,每个节点最多可以有m个子节点。 根以外的节点至少有[m/2]的子节点,关键字的个数比B-tree多一个,为[m/2]~m。

处理索引的两个数据结构之间的差异如下:

1。 相同的键值不会多次出现在b树中,既可以出现在叶节点中,也可以出现在非叶节点中。 另一方面,b树的结合必然出现在叶节点上,也可能在非叶节点上重复出现,维持b树的平衡。

2。 由于b树的关键位置不确定,在整个树结构中只出现一次,虽然可以节约存储空间,但插入、删除操作的复杂度明显增大。 b树是一个比较好的折中。

3。 b树的查询效率依赖于树中密钥的位置,最大时间复杂度与b树相同(对于叶节点),最小时间复杂度为1 (对于根节点)。 另一方面,b树的时间复杂度相对于某棵树是固定的。

有关MySQL相关技术文章的详细信息,请参见MySQL数据库的字符教程栏。

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