| 项目 | 值 |
|---|---|
| 主题 | B+树 |
| 核心概念 | B+树是B树的变体,广泛用于数据库索引和文件系统 |
| 关键字 / 数据位置 | 只在叶子结点 |
| 叶子链表 | 有(支持范围查询) |
| 难度 | ⭐⭐⭐⭐ |
| 重要性 | ⭐⭐⭐⭐ |
B+树是B树的变体,广泛用于数据库索引和文件系统。
┌──┬──┬──┬──┬──┬──┐
│P0│K1│P1│K2│P2│K3│P3│
└──┴──┴──┴──┴──┴──┘
┌──┬──┬──┬──┬──┬──┬──┐
│K1│D1│K2│D2│K3│D3│P │
└──┴──┴──┴──┴──┴──┴──┘
| 特性 | B树 | B+树 |
|---|---|---|
| 关键字分布 | 所有结点 | 只在叶子 |
| 数据存储 | 所有结点 | 只在叶子 |
| 叶子链表 | 无 | 有 |
| 查找路径 | 不同(可能中途命中) | 所有到叶子 |
| 非叶结点 | 存数据 | 只索引 |
依次插入:1, 2, 3, 4, 5
[1][1,2][1,2,3] → 分裂
[1,2],右叶子 [3] 3
/ \
[1,2] [3]
[3,4][3,4,5] → 分裂
[3,4],右叶子 [5] 3 5
/ | \
[1,2][3,4][5]
叶子链表:[1,2] → [3,4] → [5,6] → [7,8]
查询关键字 $\geq 4$:
[3,4]100 个关键字的 3 阶 B+树,最大高度?
| 特性 | B+树 |
|---|---|
| 关键字位置 | 只在叶子 |
| 数据位置 | 只在叶子 |
| 叶子链表 | 有 |
| 查找稳定性 | 所有查找深度相同 |
| 范围查询 | 高效 |
| 应用 | 数据库索引 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。