InnoDB中一颗B+树可以存放多少行数据?

本文详细解释了B+树的高度与其能容纳的记录数的关系,特别关注了高度为2和3的B+树在InnoDB中的应用,指出其在千万级数据存储中的优势。通过计算展示了不同高度B+树的记录容量,并强调了InnoDB中常见的B+树高度范围。
摘要由CSDN通过智能技术生成


B+Tree索引:按顺序存储,每一个叶子节点到根结点的距离是相同的;左前缀索引,适合查询范围类的数据

假设定义一颗B+树高度为2,即一个根节点和若干叶子节点。
那么这棵B+树的存放总行记录数=根节点指针数*单个叶子记录的行数。
这里先计算叶子节点,B+树中的单个叶子节点的大小为16K,

假设每一条目为1K,那么,记录数即为16(16k/1K=16),
然后计算非叶子节点能够存放多少个指针,
假设主键ID为bigint类型,那么长度为8字节,
而指针大小在InnoDB中是设置为6个字节,这样加起来一共是14个字节。
那么通过页大小/(主键ID大小+指针大小),即16384/14=1170个指针,

所以一颗高度为2的B+树能存放16*1170=18720条这样的记录。


根据这个原理就可以算出一颗高度为3的B+树可以存放16*1170*1170=21902400条记录。

所以在InnoDB中B+树高度一般为2-3层,它就能满足千万级的数据存储。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直在努力学习的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值