MySQL学习笔记 002:InnoDB数据页结构

1 数据页结构

名称大小 (Byte)描述
File Header38文件头部,存放页通用信息
Page Header56页头部,存放数据页专用信息
Infimum + Supremum26首、末虚拟记录
User Record-存放记录
Page Directory-页目录,存放记录的相对位置
File Trailer8文件尾部,数据校验

在这里插入图片描述

2 User Record

2.1 heap_no

记录按顺序排列在User Record中,直至将页内空余空间用完。保存记录的结构称为堆,每条记录中记录头的heap_no递增。Infimum为首条记录,heap_no为0。Supremum为末记录,heap_no为1。用户的记录heap_no从2开始。

2.2 next_record

next_record到下一个记录的真实数据距离。

2.3 deleted_flag

被删除的记录删除后deleted_flag置为1,被删除的记录组成垃圾链表,组成可重用空间。

2.4 record_type

  • 0:普通记录
  • 1:B+树目录项
  • 2:Infimum记录
  • 3:Supremum记录

3 Page Directory

记录被分为若干个组,每组最多8条记录。每组最后一条记录的数据的地址偏移量存放在页目录(Page Directory)中。每个组中最后一条记录的n_owned存放组内记录条数。
根据主键查找时,采用二分查找的方式查找记录,减少查找次数。

4 Page Header

名称大小 (Byte)描述
page_n_dir_slots2页目录中槽的数量
page_heap_top2未使用空间的最小地址
page_n_heap2堆内记录数量(包括所有记录)
page_free2垃圾链表头节点
page_garbage2已删除记录占用字节数
page_last_insert2最后插入记录地址
page_direction2记录插入方向
page_n_direction2一个方向连续插入记录数量
page_n_recs2页内用户记录数量(不包括已删除记录和首末虚拟记录)
page_max_trx_id8修改当前页的最大事务ID
page_level2B+树层级
page_index_id8索引ID
page_btr_seg_leaf10B+树叶子节点段的头部信息
page_btr_seg_top10B+树非叶子节点段的头部信息

5 File header & File trailer

5.1 File header

FIL_PAGE_SPACE_OR_CHECKSUM:校验和
FIL_PAGE_OFFSET:页号
FIL_PAGE_PREV:前一页页号(组成双向链表)
FIL_PAGE_NEXT:后一页页号(组成双向链表)

5.2 File trailer

保存校验和和LSN号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值