InnoDB数据页结构

数据页包括七个部分:

文件头

  • 文件头(38字节)FileHeader:表示页的信息。
    • File Header 中有两个指针,分别指向上一个数据页和下一个数据页,连接起来的页相当于一个双向的链表。
    • 链表的结构是让数据页之间不需要是物理上的连续的,而是逻辑上的连续。

页头

  • 页头(56字节)PageHeader:表示页的状态信息。

最大最小记录

  • 最大最小记录(26字节)lnfimun+Supremum:两个虚拟的伪记录,分别表示页中的最小记录和最大记录。

用户记录

  • 用户记录(不确定)UserRecords:按照指定行格式存储的行记录内容。

空闲空间

  • 空闲空间(不确定)FreeSpace:页中还没被使用的空间

页目录

  • 页目录(不确定)PageDirectory:由多个槽组成的,一个槽对应着一个用户记录分组,槽相当于分组记录的索引。可以用二分查找的方法快速检索到记录在哪个分组

文件尾

  • 文件尾(8字节)FileTrailer:校验页是否完整