More Related Content
Similar to MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
Similar to MySQL源码分析.03.InnoDB 物理文件格式与数据恢复 (7)
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
- 13. File Header(Fil0fil.h) 名称 大小 (B) 描述 FIL_PAGE_SPACE_OR_CHECKSUM 4 当 MySQL < 4.0.14 时表示该页属于哪个表空间,因为共享表空间中放了属于不同表空间的页。之后的 MySQL 用此值记录新的页 Checksum 值。 FIL_PAGE_TYPE 2 页的类型 FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID 4 从 MySQL 4.1 开始,该值表示页属于哪个表空间 FIL_PAGE_FILE_FLUSH_LSN 8 该值仅在数据文件中的一个页中定义,代表文件至少被更新到了该 LSN 值 FIL_PAGE_LSN 8 该页最后被修改的日志序列位置 LSN FIL_PAGE_PREV/NEXT 4 当前页的上一个及下一个页 (B+ Tree) FIL_PAGE_OFFSET 4 表空间中页的偏移量
- 14. Page Header(Page0page.h) 名称 大小 (B) 描述 PAGE_N_DIR_SLOTS 2 在 Page Directory 中的 Slot 数。 PAGE_GARBAGE 2 已删除记录的字节数,即 deleted flag 为 1 的记录大小 PAGE_BTR_SEG_TOP 10 B+ 树非叶节点中文件段的首指针位置。仅在 Root 页定义 PAGE_LAST_INSERT 2 最后插入记录的位置,如果被 DELETE 则此记录为 NULL PAGE_FREE 2 指向空闲列表首指针 PAGE_N_HEAP 2 堆中的记录数 PAGE_HEAP_TOP 2 堆中第一个记录的指针 PAGE_DIRECTION 2 最后插入的方向, PAGE_LEFT(0x01) 等 PAGE_MAX_TRX_ID 8 修改当前页的最大事务 ID ,仅在非主键索引定义 PAGE_N_RECS 2 该页中的记录数 PAGE_INDEX_ID 8 当前页属于哪个索引 ID PAGE_LEVEL 2 当前页在索引树中的位置, 0x00 代表叶节点 PAGE_BTR_SEG_LEAF 10 B+ 树叶节点中文件段的首指针位置。仅在 Root 页定义
- 18. InnoDB Compact 行格式 变长字段长度列表 NULL 标志位 记录头信息 (5 Byte) TRX_ID (6 Byte) ROLL_PTR (7 Byte) …… 名称 大小 (bit) 描述 前两个 1 未知 min_rec_flag 1 如果改行记录是预先被定义为最小的记录则为 1 deleted_flag 1 该行是否删除 n_owned 4 该行拥有的列数 heap_no 13 索引堆中该条记录的排序记录 record_type 3 000= 普通 001=B+ 树节点指针 010=Infimum 011=Supermum 1XX= 保留 next_recorder 16 页中下一条记录的相对位置