Sun Blog

Back

MySQL 三层 B+ 树能存多少数据Blur image

在 InnoDB 存储引擎中,默认页大小是 16KB。对于聚簇索引来说:

  • 非叶子节点:存放「主键值 + 子节点指针」
  • 叶子节点:存放完整的数据行(实际记录)

我们通过一个简单的估算,看看三层 B+ 树大概能存多少数据。

非叶子节点能存多少索引项?#

假设:

  • 主键类型为 BIGINT:占 8 字节
  • 子节点指针占 6 字节
  • 每个索引项大小:

那么一个非叶子节点能存的索引项数量为

16×1024÷(8+6)117016 \times 1024 \div (8 + 6) \approx 1170

叶子节点能存多少行数据?#

假设每条数据记录占 1KB,则一个叶子节点能存放的记录数量为:

16÷1=1616 \div 1 = 16

三层 B+ 树能存多少数据?#

三层 B+ 树的结构为

image-20260219201040249

总记录数为

1170×1170×1621901170 \times 1170 \times 16 \approx 2190 万条

所以三层 B+ 树大约能存两千多万条数据

MySQL 三层 B+ 树能存多少数据
https://blog.csun.site/blog/2025-01-29-mysql-b-store-data
Author Sun Xin
Published at January 29, 2025
Comment seems to stuck. Try to refresh?✨