InnoDB是MySQL最常用的事务存储引擎,文章主要为个人学习nnoDB结构的简单总结。
逻辑存储结构
![7e29b7e564953c03245e92b725a7ddab.png](https://i-blog.csdnimg.cn/blog_migrate/10ab4227c2bd187f18a4e0f6863885d5.jpeg)
- Tablespace(表空间): InnoDB把数据保存在表空间内,表空间可以看作是InnoDB存储引擎逻辑结构的最高层。本质上是一个由一个或多个磁盘文件组成的虚拟文件系统,存储表和索引,还保存了回滚段、双写缓冲区等
- Segment(段):表空间的主要组织单位,常见的段有数据段、索引段、回滚段等,是构成索引、表、回滚段的基本元素。 创建一个索引(B+树)时会同时创建两个段,分别是内节点段和叶子段,内节点段用来管理(存储)B+树非叶子(页面)的数据,叶子段用来管理(存储)B+树叶子节点的数据。
- extent(区/簇): 簇是构成段的基本元素,一个段由若干个簇构成。 簇是由64个连续的页组成的,每个页大小为16KB,即每个簇的大小为1MB。
- Page(页) :页是InnoDB存储引擎磁盘管理的最小单位,每个页默认16KB。常见的页类型有数据页(B-tree Node)、Undo页(Undo Log Page)、系统页(System Page)、事务数据页(Transaction system Page)等。
- Row(行):数据的存放形式,最多允许存放16