简单理解Mysql Innodb引擎中的B+树

本文探讨了Mysql InnoDB引擎在5.7版本后使用B+树进行数据查询的效率优势,重点关注16kb分页机制的影响。非叶子节点包含文件头、索引类型等信息,叶子节点包含变长列表、事务ID等。通过分析,提出增加B+树容纳量的三个途径:页大小、主键大小和字段长度。虽然MySQL通常不支持直接修改页大小,但可以通过源码级别的调整实现,如改变UNIV_PAGE_SIZE和UNIV_PAGE_SIZE_SHIFT的值。
摘要由CSDN通过智能技术生成

目前为止,作为绝大多数的数据库选择的主流——Mysql的使用愈发广泛,这篇文章我们就简单小计一下Mysql5.7版本之后,默认引擎Innodb使用B+树的基本分页机制。
B+树的优势在于使用明显较小的层数来完成数据库数据的查询,而Innodb的默认分页大小为16kb,那么这个16kb所影响的方面在什么地方呢?
首先我们要理解在整个数据底层中,在非叶子节点的情况下,每一页的内容:

  • file Header、Page Header等 102字节
  • Infimum+Supermum 13字节
  • 记录头 5字节
  • 索引类型(例:int为 4字节,longint为 8字节)
  • 页目录偏移量 4字节
非叶子节点可以存储的记录数量
=(页大小-file Header - Page Header-...)/(记录头 +主键+页偏移量)
=(16kb-128b)/(5b+4b(int
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值