InnoDB引擎一颗B+树能存多少数据

一颗3层的B+树大概能存2000w行数据。

怎么算的

这里需要知道的前置知识:

  1. InnoDB引擎的最小存储单元是页,一页16KB,B+树的一个节点就是一页
  2. 非叶子节点存储的是 主键 + 指针
  3. 叶子节点存放的是数据

计算条件:

  1. bigint类型的主键占8 Byte,指针占6Byte,那么一条非叶子节点的数据就是14Byte,为了避免混淆,后面我们把非叶子节点存放的数据称为指针
  2. 假设一条完整数据的大小是1KB(方便计算);

那么,2层B+树能存储的数量:

3层B+树能存储的数量:

解释一下上面的图:

  1. 非叶子节点中,一个指针的大小是8 + 6 = 14 Byte,那么一个非叶子节点能存1170个指针;
  2. 叶子节点中,一条数据是1KB,那么一个叶子节点能存储16条数据;
  3. 每个指针指向的都是一个节点(一页),所以可以根据上一层节点中的指针数量,计算出下一层存储的指针或数据的数量;

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值