mysql的innodb索引数据结构是B+树,而不是hash?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Michaeles/article/details/86584505

一、基础

1.什么是聚簇索引?

innodb中,主键的索引结构中,既存储了主键值,又存储了行数据

2.B+树和B-树的区别?

(1)B+树只有叶节点存放数据,其余节点用来索引;

(2)而B-树是每个索引节点都会有Data域。

二、mysql的innodb索引数据结构是B+树,而不是hash?

1.哈希索引适用的场景

适合等值查询(前提是不存在大量重复键值,如果存在重复键就会出现哈希碰撞的问题)。

2.哈希索引不适用的场景(为什么不用hash)

(1)不支持范围查询(经过hash算法后后,就变成不连续的了);

(2)不支持利用索引完成排序、以及like ‘xxx%’ 这样的部分模糊查询;

(3)不支持联合索引的最左前缀匹配规则;

3.什么是哈希索引?(Memory引擎)

哈希索引就是采用一定的哈希算法,把键值换算成新的哈希值,检索时不需要类似B+树那样从根节点到叶子节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置,速度非常快。

猜你喜欢

转载自blog.csdn.net/Michaeles/article/details/86584505