为什么InnoDB要使用B+树作为索引?

因为B+树是一种高度平衡的多路查找树,能有效降低磁盘的IO次数,并且支持有序遍历和范围查询。
查询性能非常高,其结构也适合MySQL按照页为单位在磁盘上查询。
像其他选项,比如说哈希表不支持范围查询,二叉树层级太深,B树不方便范围扫描,最终选择了B+树。

再换一种回答:

  • 相比哈希表:B+树支持范围查询和排序。
  • 相比二叉树和红黑树:B+树更矮胖,层级更少,磁盘IO次数更少
  • 相比B树:B+树的非叶子结点只存储键值,叶子结点存储数据并通过链表连接,支持范围查询。
    • 非叶子结点上由于没有存储数据,就可以存储更多的键值对。
posted @ 2025-05-27 14:49  kuki'  阅读(13)  评论(0)    收藏  举报