在 InnoDB 存储引擎中,默认页大小是 16KB。对于聚簇索引来说:
- 非叶子节点:存放「主键值 + 子节点指针」
- 叶子节点:存放完整的数据行(实际记录)
我们通过一个简单的估算,看看三层 B+ 树大概能存多少数据。
非叶子节点能存多少索引项?#
假设:
- 主键类型为
BIGINT:占 8 字节
- 子节点指针占 6 字节
- 每个索引项大小:
那么一个非叶子节点能存的索引项数量为
16×1024÷(8+6)≈1170 个
叶子节点能存多少行数据?#
假设每条数据记录占 1KB,则一个叶子节点能存放的记录数量为:
16÷1=16 条
三层 B+ 树能存多少数据?#
三层 B+ 树的结构为

总记录数为
1170×1170×16≈2190 万条
所以三层 B+ 树大约能存两千多万条数据