MySQL索引的数据结构

索引数据结构的分类

MySQL索引的数据结构主要有B+树哈希表

对应的索引分别为B+树索引和哈希索引。

InnoDB引擎默认的索引类型为B+树索引

B+树索引

B+树是基于B树叶子节点顺序访问指针进行实现。

它具有B树的平衡性,并且通过顺序访问指针来提高区间查询的性能。

在B+树中,节点中的key从左到右递增排列

在这里插入图片描述
如果某个指针的左右相邻key分别是key[i]和key[i+1], 则该指针指向节点的所有key大于等于key[i]且小于等于key[i+1]。

进行查找操作时,首先在根节点进行二分查找,找到key所在的指针。然后递归地在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子节点上进行二分查找,找出key所对应的数据项。

MySQL数据库使用最多的索引类型是BTREE索引,底层是基于B+树数据结构来实现的。

哈希索引

哈希索引是基于哈希表实现的。

对于每一行数据,存储引擎会对索引列进行哈希计算得到哈希码

并且哈希算法要尽量保证不同的列值计算出的哈希码值是不同的,将哈希码的值作为哈希表的key值,将指向数据行的指针作为哈希表的value值

这样查找一个数据的时间复杂度就是O(1), 一般多用于精确查找。

参考资料MySQL索引的数据结构

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值