一、B+树 vs B树:核心差异与数据库底层逻辑
1.1 数据存储结构的本质区别
1.1.1 B树的设计缺陷
- 节点存储内容:每个节点既存储键值,又存储数据记录
- 典型场景问题:
- 假设磁盘页大小为16KB,若键值+数据总大小为1KB,单个节点仅能存储16条记录
- 100万条数据需构建4层树(16×16×16×16=65536 < 100万),查询需4次磁盘I/O
1.1.2 B+树的优化设计
- 数据分离存储:
- 非叶子节点仅存储键值(无数据记录),单节点键值存储量提升至16KB/键值大小
- 假设键值大小为100字节,单个节点可存储160个键值
- 100万条数据仅需3层树(160×160×160=4,096,000 > 100万),查询仅需3次磁盘I/O
公式对比:
- B树高度