一颗高度为3的B+树到底能存多少数据呢

1. 背景

同学在参加阿里面试的时候,被问到了B+树索引能存多少数据。这个问题挺有趣,要是对B+树不太了解,那么这个问题估计也不好回答

那么要回答这个问题,首先要知道B+树的结构是怎样的,存了什么数据,怎么存的,这些东西占多大等

先新建个表

CREATE TABLE IF NOT EXISTS `person`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `name` VARCHAR(64) NOT NULL,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. InnoDB的页结构

  • 在InnoDB中,索引默认使用的数据结构为B+树,而B+树里的每个节点都是一个页,默认的页大小为16KB

  • 非叶子节点存的是索引值以及页的偏移量,而叶子节点上存放的则是完整的每行记录

image.png
大概认识了页里面存了什么,占多大空间,就可以估计能存放多少条数据了

这里重点关注绿色部分。我也没画太全,还有File Header、Page Header等是什么,有什么用这些就不展开说了,有兴趣的可以自己去翻一下《MySQL技

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值