关于InnoDB,Page中的数据链表#的问题

InnoDB中的page里面的数据到底是单向链表的结构还是双向链表啊?

InnoDB中的page里面的数据到底是双向链表。

Page是Innodb存储的最基本结构,也是Innodb磁盘管理的最小单位,与数据库相关的所有内容都存储在Page结构里。Page分为几种类型:数据页(B-Tree Node),Undo页(Undo Log Page),系统页(System Page),事务数据页(Transaction System Page)等;每个数据页的大小为16kb,每个Page使用一个32位(一位表示的就是0或1)的int值来表示,正好对应Innodb最大64TB的存储容量(16kb * 2^32=64tib)
一个Page的基本结构如下:

img

头部数据
每个page都有通用的头和尾,但是中部的内容根据page的类型不同而发生变化,头部的数据如下:

img

page头部保存了两个指针,分别指向前一个Page和后一个Page,头部还有Page的类型信息和用来唯一标识Page的编号。根据这个指针分布可以想象到Page链接起来就是一个双向链表

img

如有帮助,欢迎采纳!