InnoDB 存储引擎是 MySQL 的一个重要存储引擎,采用了多种优化技术来提高性能。以下是 InnoDB 记录存储结构和索引页结构的详细解析:
1. InnoDB 记录存储结构
InnoDB 的数据存储在数据页中,每个数据页大小默认为 16KB。数据页中包含多个记录。InnoDB 的记录结构主要由以下几个部分组成:
1. 页(Page)
InnoDB 使用页(Page)作为基本的存储单位。每个页的大小通常为 16KB。页中可以存储多条记录,页的结构如下:
- File Header:页的文件头部信息,包括页类型、页号等元数据。
- Page Header:页头部信息,包括页中记录的数量、记录列表的指针等。
- Infimum 和 Supremum 记录:每个页中都有两条伪记录,分别是最小和最大记录,用于记录的边界。
- User Records:实际的用户记录数据。
- Free Space:可用的空闲空间,用于插入新记录。
- Page Directory:页目录,用于加速记录的查找。
- File Trailer:页的文件尾部信息,包括校验和等数据完整性信息。
2. 行(Row)
每个页中存储多条行记录,行记