原标题:InnoDB Page结构详解
1导读
本文花了比较多的时间梳理了InnoDB page的结构以及对应的分裂测试,其中测试部分大部分是参考了叶老师在《InnoDB表聚集索引层什么时候发生变化》一文中使用的方法,其次,本文中的测试工具用到了如下两个工具:
innblock:https://github.com/gaopengcarl/innblock
innodbruby:https://github.com/jeremycole/innodbruby
本文篇幅较长,强烈建议使用电脑阅读本文。
一、page结构
InnoDB Page结构图
1、File Header结构,记录了page页的一些头信息,一共38字节
innodb存储页类型
2、page header,记录页的状态信息,共56字节
3、虚拟最大最小记录(Infimum and Supremum Records)
最大记录是这个数据页中逻辑上最大的记录,所有用户的记录都小于它。最小记录是数据页上最小的记录,所有用户记录都大于它。他们在数据页被创建的时候创建,而且不能被删除。引入他们主要是方便页内操作。
4、用户记录
用户所有插入的记录都存放在这里,默认情况下记录跟记录之间没有间隙,但是如果重用了已删除记录的空间,就会导致空间碎片。每个记录都有指向下一个记录的指针,但是没有指向上一个记录的指针。记录按照主