当前位置: 代码网 > it编程>数据库>Mysql > Mysql的B树和B+树分别能存储多大的数据量

Mysql的B树和B+树分别能存储多大的数据量

2024年08月02日 Mysql 我要评论
B-Tree: 4000 条, 千级B+Tree: 2000w条,千万级一般是3层,即Mysql通过3次IO操作就可以找到数据。

mysql的b树和b+树分别能存储多大的数据量

1、mysql b-tree (不读"b减树",而读"b杠树"或者"b树")

第一层: 16
由于数据与key和指针都存放在了各自节点中,所以16k的节点,按数据1k计算,只能存放16条数据,即16个key
第二层: 16 * 16 = 256
第三层: 16 * 16 * 16 = 4096
三层加起来: 大约4000条数据

2、mysql b+tree

第一层: 16 * 1000 / 16 = 1000条
16 * 1000表示节点大小默认为16k,估算1k=1000,16表示8字节key长度+8字节指针。但有资料说指针长度是6字节,加起来应该是14字节,此处仅估算按16字节
第二层: 1000 * 1000 = 100w条
第一层的一个节点中有1000条数据,那分段有多少呢,1000+1个分段,但此处估算就不+1了,每个分段有一个指针指向二层的子节点,将有1000个子节点,每个子节点的数据量与第一层的数据量一样,即1000条数据
第三层: 1000 * 1000 * 16 = 1600w条
第三层因为存放了数据,所以key的数量就没那么大了,按一条数据1k计算,大约能存16条数据(16k/1k=16条)
1000表示第二层有1000个节点,第二个1000表示第二层每个节点有1000个指针(即在第三层上有1000个子节点),第三层的每个节点有16条数据

总数据量并不是将三层的数据量加起来,因为b+树只有叶子节点存数据,即第一层和第二层没有存放数据。所以第三层的数据量就是总数据量: 1600w条数据。上线取整到2000w条数据。

3、总结

b-tree: 4000 条, 千级
b+tree: 2000w条,千万级
一般是3层,即mysql通过3次io操作就可以找到数据

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com