数据库-InnoDB的数据存放方式
1. 数据页的结构
InnoDB
存储数据的基本方式就是数据页,读数据的时候,本质上就是将一个页从磁盘当中读出来。Page
默认的大小是16KB
,一次读取数据的最少的量就是16KB
- 数据页由
7
个部分组成:
INFO
- 文件头:表示页的信息
- 页头:表示页的状态信息
- 最大、最小记录:表示页当中的最大和最小记录
- 用户记录:数据库当中呈现的行记录内容
- 空闲空间:当前页还有多少空间是空余的
- 页目录:记录用户存储的相对位置,起到索引的作用
- 文件尾:校验,用来检查页是否完整
- 不同的
Page
之间通过双向链表进行连接,便于插入、删除等操作。同时,Page
这种设计隐含了“批处理”的思想,一次将一个Page
读入内容,避免了频繁的磁盘IO
操作。
2. 页记录和记录的关系
- 页记录是数据页当中的一部分,页目录存放了每条用户记录的相对位置,并且按照主键的顺序进行排序。
- 之所以需要按照主键顺序进行排序,就是为了利用二分查找,加速定位具体的记录。
3. 页记录的组织方式:B+树
- 只有叶子节点的
page
才能存放数据,非叶子节点的page
只存放目录项(充当索引) - 非叶子节点分为不同的层次,通过分层来决定每一层的搜索量。
- 所有的节点按照索引键的大小排序,形成双向链表,便于范围查询 。