面试题:估算⼀下两层的 B+ 树可以存放多少数据,三层呢?

一:B+树高度因素

B+树的高度取决于
1:阶数(每个节点的最大子节点数)
2:存储的数据量。

    树的高度会随着数据量的增加而增加


 

二:两层B+树存储的数据量

计算B+树存储的数据量,先从层级低的开始计算,然后梯推,所以先从方便的两层算起

由图中看出:一个节点存储在一个页中,一个节点中key的数量=一个节点中指针的数量-1

🐂必须知道:

B+树的一个节点中:
1:指针(图中灰色块)占6字节
2:Key(图中蓝色块)占的字节取决与主键类型:

      int:4字节

      bigint:8字节

😄先计算一个节点的数据量

假设一行数据1k,那么一个节点在一个页/块中,能存储16行数据,
那么,设一个节点有n个key,那么有(n+1)个指针,key类型假设是bigint


n*8+(n+1)*6=16*1024---------------------------------------------------------一个页/块内的计算,

我们要转为以字节为单位,因为上面的指针,bigint所占有的都是以字节为单位

  
n=1170,一个节点有1170个key

那么一个节点就有1171个指针,1171个子节点,那么1171*16=18736行数据

🌳解释一点:

1KB(千字节)=1024B(字节)

1B(字节)=8bit(比特)

三:三层B+树存储的数据量

B+树的数据只存在叶子节点,两层算出来了,每个节点有1171个指针,那么就有1171个孩子

那么,三层只是在两层的基础上×1171即可,因为第二层的每个节点下也有1171个孩子

1171*1171*16=2000万行数据


觉得我写得通俗易懂的,点个关注,不点我不更了!✌

第一次发帖,排版舒不舒服??

如果我没有刀,我就不能保护你,如果我有刀,我就不能拥抱你。

你所在的城市看不到雪,我为你将一场雪,每一朵雪花落地都是在说:我爱你🌹

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值