一: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万行数据
觉得我写得通俗易懂的,点个关注,不点我不更了!✌
第一次发帖,排版舒不舒服??
如果我没有刀,我就不能保护你,如果我有刀,我就不能拥抱你。
你所在的城市看不到雪,我为你将一场雪,每一朵雪花落地都是在说:我爱你🌹