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

这篇具有很好参考价值的文章主要介绍了Mysql的B树和B+树分别能存储多大的数据量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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操作就可以找到数据文章来源地址https://www.toymoban.com/news/detail-849464.html

到了这里,关于Mysql的B树和B+树分别能存储多大的数据量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构与算法】分别以邻接矩阵和邻接表作为存储结构实现以下操作:1.增加一个新顶点v、2.删除顶点v及其相关的边、3.增加一条边<v,w>、4.删除一条边<v,w>

       Qestion:   分别以邻接矩阵和邻接表作为存储结构,实现以下图的基本操作 增加一个新顶点v, InsertVex(G, v) ; 删除顶点v及其相关的边, DeleteVex(G, v) ; 增加一条边v,w, InsertArc(G, v, w) ; 删除一条边v,w, DeleteArc(G, v, w) 。 因为要分别用邻接表和邻接矩阵来完成上述四个算

    2024年02月05日
    浏览(46)
  • 爬虫-8-数据存储-mysql

    #mysql占空间最小吧,数据存储没问题吧 (//∇//)  

    2024年01月18日
    浏览(20)
  • MySQL 数据库存储引擎

    目录 一、存储引擎简介 二、MyISAM存储引擎 1、MylSAM介绍 2、MyISAM表支持3种不同的存储格式 3、MylSAM的特点 4、MyISAM使用的生产场景 三、InnoDB存储引擎 1、InnoDB介绍 2、InnoDB的特点 3、InnoDB适用生产场景 4、MyISAM和InnoDB的区别 四、查看和修改存储引擎 1、查看系统支持的存储引擎

    2023年04月25日
    浏览(40)
  • MySQL InnoDB 底层数据存储

    是内存与磁盘交互的基本单位,16kb。 比如,查询的时候,并不是只从磁盘读取某条记录,而是记录所在的页 记录的物理插入是随机的,就是在磁盘上的位置是无序的。但是在页中维护了逻辑顺序,是按照主键从小到大形成的一个单向链表。 infimum与supermum就相当于链表中的头

    2024年01月23日
    浏览(33)
  • 【MySQL】InnoDB数据存储结构

    第一部分:文件头部+文件尾部 主要包含了对页面之间双向链表的表示、页面校验和、页面最后被修改对应的日志序列位置 第二部分:空闲空间+用户记录+最小最大记录 用户记录 : ​ 用户记录中的记录按照指定的行格式一条条摆在该区域,相互之间形成单链表。 第三部分:

    2024年01月24日
    浏览(36)
  • MySQL数据库中的存储过程以及存储函数练习

     字段名       数据类型       主键    外键    非空   唯一    自增       id             INT               是      否       是       是           否    name    VARCHAR(50)   否      否       是       否           否    glass   VARCHAR(50)     否   

    2024年02月15日
    浏览(33)
  • MySQL数据库之存储引擎

    MySQL中的数据用各种不下同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。 存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式。 存储引擎是

    2024年02月03日
    浏览(39)
  • MySQL-07.InnoDB数据存储结构

    索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的 存储引擎 负责对表中数据的读取和写入工作。不同存储引擎中 存放的格式 一般是不同的,甚至有的

    2024年04月27日
    浏览(31)
  • 【MySQL 数据库】9、存储过程

    🌱 存储过程是事先经过编译并存储在数据库中的 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,可以提高数据处理效率 🌱 存储过程思想上很简单:就是数据库 SQL 语言层面的代码封装与重用 🍃 【封装,复用

    2024年02月08日
    浏览(34)
  • 数据库(MySQL)的存储过程

    存储过程是事先经过编译并存储在数据库中的一段SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库SQL 语言层面的代码封装与重用。 特点

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包