探讨B+Tree存储数据的量

一 概述

        可以简单的回顾B+Tree数据存储的相关的内容:
回顾数据库之B-Tree和B+Tree_calm_encode的博客-CSDN博客https://blog.csdn.net/calm_encode/article/details/123313255

二 B+Tree存储数据的量

        计算机在存储数据的时候,最小存储单位是以扇区计算,一个扇区的大小是512字节,而文件系统(如XFS/EXT4)最小单位是块,一个块的大小是4KB。

        InnoDB引擎存储数据的时候,是以页为单位,每个数据页的默认大小是16KB,对应操作系统中的4个块。

        当数据库存储的一条记录是1KB,那么(单个叶子节点)一页可以存储16条数据;对于非叶子节点存储的则是主键值和指针,在InnoDB中,一个指针的大小是6个字节,当主键的类型为BigInt的时候,此时的主键占用8个字节,其他信息的大小暂时不考虑。

        16*1024/(8+6) = 1170
        对于高度为2的B+Tree来说,存在一个根节点,而这个根节点存在1170个叶子节点的指针,而每个叶子节点存储16条数据,此时存储数据的总量为1170*16 = 18720。

        而对于高度为3的B+Tree来说,存储的数据量为1170*1170*16=21902400条数据。

        综上所述,在InnoDB引擎中,存储结构为B+Tree的时候,只要树的高度为3就可以满足千万级的数据存储,在查找某条数据时,将对一次页的查找代表一次IO,那么我们可以通过主键索引查找的时候一般只需要进行1-3此IO即可。

        参考:一颗B+树上能存多少数据?_旧人可安的博客-CSDN博客_b+树最大存储量icon-default.png?t=M1L8https://blog.csdn.net/weixin_41325595/article/details/103399764

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值