![47725a0ce202c878370642b152c3e514.png](https://img-blog.csdnimg.cn/img_convert/47725a0ce202c878370642b152c3e514.png)
一.InnoDB逻辑存储结构 首先要先介绍一下Inno DB逻辑存储结构和区的概念,
它的所有数据都被逻辑地存放在表空间,表空间又由段,区,页组成。
![5a4e7ad5feecccd76f826859cb2c74d6.png](https://img-blog.csdnimg.cn/img_convert/5a4e7ad5feecccd76f826859cb2c74d6.png)
段 段就是上图的segment区域,常见的段有数据段、索引段、回滚段等,在InnoDB存储引擎中,对段的管理都是由引擎自身所完成的。
区 区就是上图的extent区域,
区是由连续的页组成的空间,无论页的大小怎么变,区的大小默认总是为1MB。 为了保证区中的页的连续性,InnoDB存储引擎一次从磁盘申请4-5个区,InnoDB页的大小默认为16kb,即一个区一共有64(1MB/16kb=16)个连续的页。 每个段开始,先用32页(page)大小的碎片页来存放数据,在使用完这些页之后才是64个连续页的申请。这样做的目的是,
对于一些小表或者是undo类的段,可以开始申请较小的空间,节约磁盘开销。
页 页就是上图的page区域,也可以叫块。
页是InnoDB磁盘管理的最小单位。默认大小为16KB,可以通过参数innodb_page_size来设置。 常见的页类型有:数据页,undo页,系统页,事务数据页,插入缓冲位图页,插入缓冲空闲列表页,未压缩的二进制大对象页,压缩的二进制大对象