MYSQL 页面图解
2023-03-20 14:45:05 0 举报
Mysql 页面内容和行格式详解
作者其他创作
大纲/内容
0
名称
占用大小(字节)
说明
FIL_PAGE_SPACE_OR_CHKSUM
4
页面的校验和(checksum值)
FIL_PAGE_OFFSET
页号
FIL_PAGE_PREV
上一页的页号
FIL_PAGE_NEXT
FIL_PAGE_LSN
8
页面被最后修改时对应的日志序列位置(英文名是:Log Sequence Number)
FIL_PAGE_TYPE
2
页面类型
FIL_PAGE_FILE_FLUSH_LSN
仅在系统表空间的一个页中定义,代表文件至少被刷新到对应的LSN值
FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID
页属于哪个表空间
supremum
min_rec_mask
数据页3
heap_no
73 75 70 72 65 6D 75 6D
前4个字节代表页的校验和:与File Header中的校验和相对应的 后4个字节代表页面被最后修改时对应的日志序列位置(LSN):这个部分也是为了校验页的完整性的,如果首部和尾部的LSN值校验不成功的话,就说明同步过程出现了问题。
6
next_record
固定部分:supremum
delete mask
n_owned
InnoDB规定的最小记录与最大记录这两条记录的构造十分简单,都是由5字节大小的记录头信息和8字节大小的一个固定的部分组成的,如下所示:
占用大小(位)
delete_mask
1
删除标识:0:未删除 1:已删除
B+树的每层非叶子节点中的最小记录都会添加该标记,min_rec_mask值为1。
record_type
3
记录类型: 0:表示普通记录 1:表示B+树非叶节点记录 2:表示最小记录 3:表示最大记录
13
当前记录在本页中的位置
页目录中每个组中最后一条记录的头信息中会存储该组一共有多少条记录
16
当前记录的真实数据到下一条记录的真实数据的地址偏移量
预留位1
预留
预留位2
DB_TRX_ID
最小记录:
变成字段长度列表
File Header
38
文件头,数据页的信息
Page Header
56
页头,页的状态信息
Infimum + supremum
26
最小和最大记录,两条虚拟记录
User Records
不确定
用户记录,存储行记录内容
Free Space
空闲空间,页中还未使用的空间
Page Directory
页目录,存储用户记录相对位置
File Trailer
文件尾,校验页是否完整
回滚指针
分组三
记录头信息
infimum
列n值
User Records
NULL值列表
DB_ROLL_PTR
其他信息
如果我们不显式的为表定义主键,而且表中也没有 UNIQUE 索引,那么 InnoDB 存储引擎会默认为我们生成一个名为 row_id 的列作为主键
7
槽2
分组一
额外信息
数据页2
文件头内容
记录头
类型名称
十六进制
描述
FIL_PAGE_TYPE_ALLOCATED
0x0000
最新分配,未使用
FIL_PAGE_UNDO_LOG
0x0002
Undo日志页
FIL_PAGE_INODE
0x0003
段信息节点
FIL_PAGE_IBUF_FREE_LIST
0x0004
Insert Buferr空闲列表
FIL_PAGE_IBUF_BITMAP
0x0005
Insert Buferr位图
FIL_PAGE_TYPE_SYS
0x0009
系统页
FIL_PAGE_TYPE_TRX_SYS
0x0007
事务系统数据
FIL_PAGE_TYPE_FSP_HDR
0x0008
表空间头部信息
FIL_PAGE_TYPE_XDES
扩展描述页
FIL_PAGE_TYPE_BLOB
0x000A
溢出页
FIL_PAGE_INDEX
0x45BF
索引页,也就是我们所说的数据页
预留位
5
DB_ROW_ID
槽0
事务指针
用户的真实数据
数据页1
分组二
69 6E 66 69 6D 75 6D 00
....
槽1
数据页n
最大记录:
固定部分:infimum
PAGE_N_DIR_SLOTS
在页目录中的槽数量
PAGE_HEAP_TOP
还未使用的空间最小地址,也就是说从该地址之后就是 Free Space
PAGE_N_HEAP
本页中的记录的数量(包括最小和最大记录以及标记为删除的记录)
PAGE_FREE
第一个已经标记为删除的记录地址 (各个已删除的记录通过 next_record也会组成一个单链表,这个单链表中的记录可以被重新利用)
PAGE_GARBAGE
已删除记录占用的字节数
PAGE_LAST_INSERT
最后插入记录的位置
PAGE_DIRECTION
记录插入的方向
PAGE_N_DIRECTION
方向连续插入的记录数量
PAGE_N_RECS
该页中记录的数量 (不包括最小和最大记录以及被标记为删除的记录)
PAGE_MAX_TRX_ID
修改当前页的最大事务ID,该值仅在二级索引中定义
PAGE_LEVEL
当前页在B+树中所处的层级
PAGE_INDEX_ID
索引ID,表示当前页属于哪个索引
PAGE_BTR_SEG_LEAF
10
B+树叶子段的头部信息,仅在B+树的Root页定义
PAGE_BTR_SEG_TOP
B+树非叶子段的头部信息,仅在B+树的Root页定义
常见页类型
5字节
列1值
收藏
0 条评论
下一页