外观
一句话答案
B+ 树数据全在叶子且叶子链表相连适合范围查询,B 树所有节点存数据;MySQL 索引用 B+ 树。
核心要点
| 维度 | B树 | B+树 |
|---|---|---|
| 数据存储 | 所有节点 | 只有叶子 |
| 叶子链接 | 无 | 有序双向链表 |
| 范围查询 | 中序遍历 | 链表顺序扫描 |
MySQL 用 B+树原因: 矮胖(IO少) + 范围查询高效 + 查询时间稳定 + 3层可存亿级数据
追问与易错
追问方向:
- 这个概念在你的项目中是怎么应用的?
- 和相关技术/方案相比有什么优劣?
- 如果出了问题你会怎么排查?
易错点:
- ❌ 只知道概念不知道原理——面试官会追问底层实现
- ❌ 缺乏实际使用经验——结合项目场景回答更有说服力
💡 记忆锚点
B树像书里每页都夹了内容(所有节点存数据),B+树像字典:正文全在最后(数据只在叶子),目录只放索引(中间节点只存键),而且最后几页还用页码串起来(叶子链表相连,范围查询一路扫过去)。MySQL选B+树:矮胖(3层存亿级数据,IO少)、范围查询快(链表顺序扫)、查询时间稳定(都走到叶子)。