中等 · 高频 5/5

为什么 MySQL 常用 B+ 树作为索引结构?

B+ 树高度低、磁盘 IO 次数少,叶子节点有序且通过链表连接,适合范围查询和排序,是关系数据库索引的折中选择。

简短答案

B+ 树高度低、磁盘 IO 次数少,叶子节点有序且通过链表连接,适合范围查询和排序,是关系数据库索引的折中选择。

详细解析

B+ 树的非叶子节点主要保存索引键,单页能容纳更多键,树高更低。叶子节点保存完整索引项并按顺序链接,所以等值查询、范围扫描和排序都比较友好。

面试回答模板

我会从磁盘 IO 和范围查询两点回答:B+ 树扇出高,树高低,查询路径稳定;叶子节点有序链表适合范围扫描。相比哈希索引,它更适合数据库常见的范围和排序需求。

易错点

  • 只背结论,不解释原理和边界。
  • 忽略真实生产环境中的容量、延迟、一致性和失败重试。
  • 没有结合项目经验说明为什么这样设计。

常见追问

  • 这个方案在高并发下有什么风险?
  • 如果数据规模扩大十倍,你会如何调整?
  • 线上出现异常时,你会先看哪些指标?

相关题目

继续刷题
MySQL 困难 ★★★★★

MySQL 索引失效的问题如何排查?

先用 EXPLAIN 看执行计划,再检查联合索引顺序、函数计算、隐式类型转换、范围查询、排序和统计信息是否导致优化器放弃索引。

MySQL 入门 ★★★★

Mysql

Mysql 是 MySQL 中需要重点复习的条目,已从金山文档目录导入,后续可在后台补充完整答案、代码示例和图片。