后端岗位面试题更新 2026-08-05

在MySQL中,一棵高度为3的B+树大约可以存储多少行数据?请说明你的计算过程和假设条件。

后端开发问题拆解技术原理MySQL

考察说明

考查对MySQL索引结构(B+树)以及数据存储容量的理解,包括数据页大小、索引大小、行大小等因素。

回答思路

  1. 【回答框架 1】B+树用于MySQL的索引结构,每个节点对应一个数据页,默认页大小为16KB。
  2. 【回答框架 2】非叶子节点存储索引键和指针,每个索引键约8字节(bigint)加上指针6字节,共约14字节,因此一个页面大约能存储16KB / 14 ≈ 1170个索引项。
  3. 【回答框架 3】叶子节点存储实际数据行,假设每行数据大小为1KB,则每个叶子页面约存储16行。
  4. 【回答框架 4】三层B+树:根节点和中间节点各能索引1170个节点,叶子节点总共约1170 * 1170 * 16 ≈ 2190万行数据。
  5. 【回答框架 5】实际数量受索引键大小、行长、页利用率等因素影响,具体计算应基于实际参数。
  6. 【关键点 1】默认页大小16KB是计算基础。
  7. 【关键点 2】非叶子节点索引项约14字节,可存储约1170个索引项。
  8. 【关键点 3】三层结构能存储约2000万行(假设行大小为1KB)。
  9. 【关键点 4】计算结果为估算值,实际取决于索引键和行大小。
  10. 【易错点 1】不要把索引项大小固定为8字节,指针和键大小会变。
  11. 【易错点 2】不要忽略叶子节点存储的是实际数据行,而非索引项。
  12. 【易错点 3】实际行大小和页填充率影响计算结果,不可直接套用。