一、基础
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+树那样从根节点到叶子节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置,速度非常快。