参考:https://javaguide.cn/database/mysql/mysql-index.html#非聚簇索引介绍

不同引擎有不同的实现,在InnoDB引擎中,MySQL 索引的底层是B+树实现的。

b树:多路平衡树

b+树:b树基础上的变种

红黑树:自平衡二叉搜索树

b+树是什么,优缺点是什么?

b+树是一棵平衡N叉树,它是b树的一种变体,它跟b树有几个方面的不同:

为什么不使用哈希表呢?

因为哈希表不支持顺序查询范围查询,当然,MySQL 中存在自适应哈希表,作为内存索引,加速查询。

Active Hash Index:https://mp.weixin.qq.com/s/ra4v1XR5pzSWc-qtGO-dBg

聚簇索引和非聚簇索引

「聚簇索引」:即索引结构和数据一起存放的索引,并不是一种单独的索引类型。InnoDB 中的主键索引就属于聚簇索引。

「非聚簇索引」:即索引结构和数据分开存放的索引,比如二级索引(辅助索引)就是非聚簇索引,叶子节点只记录了主键,需要根据主键回表,查出数据。

为什么非聚簇索引的叶子节点不存放指向数据的指针?