Innodb设计了不同类型的页结构,存放表空间头部信息的页、存放change buffer信息的页、存放inode信息的页、存放undo redo日志信息的页;今天我们了解存放记录信息的页(数据页也叫索引页)
数据页页结构总览
名称 | 描述 |
---|---|
filer header | 页的一些通用信息 |
page header | 数据页专有的一些信息 |
infimum + supremum | 两个虚拟的记录 |
user records | 用户存储的记录内容 |
free space | 页中尚未使用的空间 |
page directory | 页中某些记录的相对位置 |
file tailer | 校验也是否完整 |
记录在页中怎么存储的
记录的头信息
上节已经介绍过记录的头信息结构了,我们重点介绍一些各个结构的具体作用
deleted_flag
主要用来标示当前记录是否被删除。占用一个bit。0-代表未删除;1-代表已删除。
要注意的一点是,打上标记的记录并不会真正被删除,而是加入到垃圾链表,等到下次有相同位置的数据插入就可以复用,而且还能避免删除记录造成的数据页重新排列(消耗性能)
min_rec_flag
B+数每层非叶子结点中最小的目录项记录都会添加该标示
n_owned
一个页面中的记录会被分成很多组(利用分组二分法加快页中的记录查找,不用从