mysql一张表最多能存多少数据_mysql B+树可以存多少数据(Innodb存储引擎)

答案是两千多万

  1.该图是以名字字段建立索引,树的高度为3为例,叶子节点(第三层)的18 15…是我们存储的数据

12d5e2c84b31964d3c447efe169a6262.png

  2.B+树是以页(作为基本单位)来存储数据或者存储索引和指针
  3.页是什么?如上图第一行有三个名字那个方框就是一个页当然,第二行和第三行也是
  4.每页存储的数据量是16K mysql默认且可以修改,不信可自查

命令 : show VARIABLES like 'innodb_page_size%’

     换算:16384(字节)/1024=16k

ef1a1b904b136d0c9ea1ac3a265c0ed7.png

  5.以bigInt 举例子 它是8个字节 一个指针是6个字节(不要问为什么,你就信了吧)bigInt是mysql 字段类型之一
  6.如本文第一个图咱们来计算一下 第一页有多少指向第二层的指针(第一页和第二页只存了索引和指向下一级的指针)
  7.16384/(6+8)≈ 1170
  8.每一个指针都是一个页,那么第二层有多少页?答案是1170个页,那么每个页是不 也有1170个指针指向第三层,那么第二层有多少指针了?1170*1170 = 1368900
  9.第三层是存数据的,那么他能存多少条数据呢?
10.每一个页咱们之前说了他能存16k大小的数据,而每一条数据大概是 1k 我们就按 1k 算,第二层有1368900个指针指向第三层,也就是  说第三层有1368900个页,每一页可以存16条数据,那么第三层可以存
16*1368900 =21902400

两千一百九十多万条数据。

注意:B+树只在最下层存储数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值