Skip to content

数据库-InnoDB的数据存放方式

1. 数据页的结构

  • InnoDB 存储数据的基本方式就是数据页,读数据的时候,本质上就是将一个页从磁盘当中读出来。
  • Page 默认的大小是 16KB,一次读取数据的最少的量就是 16KB
  • 数据页由 7 个部分组成:

image.png|375

INFO

  • 文件头:表示页的信息
  • 页头:表示页的状态信息
  • 最大、最小记录:表示页当中的最大和最小记录
  • 用户记录:数据库当中呈现的行记录内容
  • 空闲空间:当前页还有多少空间是空余的
  • 页目录:记录用户存储的相对位置,起到索引的作用
  • 文件尾:校验,用来检查页是否完整
  • 不同的 Page 之间通过双向链表进行连接,便于插入、删除等操作。同时,Page 这种设计隐含了“批处理”的思想,一次将一个 Page 读入内容,避免了频繁的磁盘 IO 操作。

2. 页记录和记录的关系

  • 页记录是数据页当中的一部分,页目录存放了每条用户记录的相对位置,并且按照主键的顺序进行排序
  • 之所以需要按照主键顺序进行排序,就是为了利用二分查找,加速定位具体的记录。

3. 页记录的组织方式:B+树

image.png|550

  • 只有叶子节点的 page 才能存放数据,非叶子节点的 page 只存放目录项(充当索引)
  • 非叶子节点分为不同的层次,通过分层来决定每一层的搜索量。
  • 所有的节点按照索引键的大小排序,形成双向链表,便于范围查询 。