ibd文件结构组成(带图详解)

ibd文件结构组成

页数据格式

InnodDB采用Btree作为存储结构,当用户创建一个Table的时候,就会根据显示或隐式定义的主键构建了一棵Btree,而构成Btree的叶子节点被称为Page,默认大小为16KB,每个Page都有一个独立的Page_no。在我们对数据库中的Table进行修改时,最终产生的影响都是去修改对应TableSpace所对应的Btree上的一个或多个Page。

为了更加方便管理和维护Extent和Page,设置了一些特殊的Page来索引它们,也就是大家常常提起的Page0,Page1,Page2,Page3,从代码的注释来看,各个Page的作用如下:

/* We create a new generic empty tablespace.

  We initially let it be 4 pages:

  - page 0 is the fsp header and an extent descriptor page,

  - page 1 is an ibuf bitmap page,

  - page 2 is the first inode page,

  - page 3 will contain the root of the clustered index of the

  first table we create here. */

(1)Page0即”.ibd”文件的第一个Page,这个Page是在创建一个新的Tablespace的时候初始化,类型为FIL_PAGE_TYPE_FSP_HDR,这个Page用来跟踪后续256个Extent(约256M)的空间管理,所以每隔256M空间大小就需要创建相仿于Page0的Page,这个Page(相仿于page0的page)被称之为Extent的描述页,这个Extent的描述页和Page0除了文件头部信息有些不同外,有着相同的数据结构,且大小都是为16KB,而每个Extent Entry占用40字节,总共分配出了256个Extent Entry,所以Page0和Extent描述页只管理后续256个Extent.区描述符所在页的偏移量都是16384(256 * 64)的倍数。第0页包含有s

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值