为什么InnoDB要使用B+树作为索引?
因为B+树是一种高度平衡的多路查找树,能有效降低磁盘的IO次数,并且支持有序遍历和范围查询。
查询性能非常高,其结构也适合MySQL按照页为单位在磁盘上查询。
像其他选项,比如说哈希表不支持范围查询,二叉树层级太深,B树不方便范围扫描,最终选择了B+树。
再换一种回答:
- 相比哈希表:B+树支持范围查询和排序。
- 相比二叉树和红黑树:B+树更矮胖,层级更少,磁盘IO次数更少
- 相比B树:B+树的非叶子结点只存储键值,叶子结点存储数据并通过链表连接,支持范围查询。
- 非叶子结点上由于没有存储数据,就可以存储更多的键值对。

浙公网安备 33010602011771号