mysql innodb 的 逻辑存储结构

Posted cxygg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql innodb 的 逻辑存储结构相关的知识,希望对你有一定的参考价值。

技术图片

 

如上图:

 

innodb 的 逻辑存储单元分成 表空间,段,区,页 4个等级

默认情况下,一个数据库 所有变共享一个 默认的表空间(tablespan)。可以指定每个表一个表空间。

一个表空间管理着 多个 segment( 段 ),不固定个数

一个段管理着多个区( extent ),并且一个区是一个 1M 。

一个 区 有 64 页 (page),一个页是 16K。

页是mysql 逻辑存储单元的最小单元,一个 页可以保存多行的数据。

 

 

page 结构:File Header(38字节),Page Header(56字节),Infimun和Supremum Records,User Records,Free Space,Page Directory,File Trailer(8字节)

 

File header:文件头里面包含了该页所在表空间信息,该页在表空间内的偏移量,该页的checksum值,该页的LSN值,该页的类型,该页的上一页指针,该页的下一页指针,页号

 

page header(位置信息、统计信息,状态信息):在页目录中的槽数、第一个记录的指针、指向可重用空间的首指针、当前页在索引树中的位置、索引ID、记录数、已删除记录的字节数、该页中记录的数量(包括最大最小记录)、最后插入记录的位置、最后插入记录的方向、一个方向连续插入记录的数量、修改当前页的最大事务、PAGE_BTR_SEG_LEAF、PAGE_BTR_SEG_TOP

 

infimum和supremum record:每个数据页中都有两个虚拟的行,用来限定记录的边界

 

user record:实际存储行记录内容

 

free space:空闲空间,同样是个链表结构。在一条记录被删除后,该空间会被加入到空闲链表中 

 

page directory:存放了记录的相对位置,这些记录的指针称为槽

 

File Trailer:前面四个字节代表该页的checksum值,最后四个字节与FIle header中的FIL_PAGE_LSN相同,通过比较这两个值来保证页的完整性

 

以上是关于mysql innodb 的 逻辑存储结构的主要内容,如果未能解决你的问题,请参考以下文章

mysql innodb 的 逻辑存储结构

MySQL 进阶 存储引擎 -- MySQL体系结构存储引擎介绍(InnoDB 逻辑存储结构MyISAMMemory)存储引擎特点存储引擎选择ibd2sdi 命令查看 ibd 文件信息

InnoDB存储引擎介绍- Innodb逻辑存储结构

MySQL 进阶 InnoDB引擎 -- 逻辑存储结构架构(内存结构磁盘结构后台线程)事务原理(事务基础redo logundo logMVCC多版本并发控制:版本链 ReadView)

Mysql的InnoDB引擎-4.表

InnoDB逻辑存储结构