1.索引组织表
①在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表
②在InnoDB存储引擎中,每张表都有个主键,如果在创建表时没有显示的定义主键,则InnoDB存储引擎会按如下方式选择或创建主键
- 首先判断表中是否有非空的唯一索引,如果有,则该列即为主键
- 如果不符合上述条件,InnoDB存储引擎会自动创建一个6字节大小的指针
- 当表中有多个非空唯一索引时,InnoDB存储引擎将选择建表时第一个定义的非空唯一索引为主键。主键的选择根据的是定义索引的顺序,而不是建表时列的顺序
2.InnoDB逻辑存储结构
①所有数据都被存放在表空间中
②表空间又由段、区、页组成
3.表空间
4.段
①常见的段有数据段、索引段、回滚段等
②数据段为B+树的叶子节点
③索引段为B+树的索引节点
5.区
①区是由连续页组成的空间,在任何情况下每个区的大小都为1M
②为了保证区中页的连续性,InnoDB存储引擎一次从磁盘申请4~5个区
③默认情况下,InnoDB存储引擎页的大小为16K,即一个区中一共有64个连续的区
6.页
①页(块)是InnoDB磁盘管理的最小单位
②在InnoDB存储引擎中,默认每个页大小为16KB
③常见的页类型有
- 数据页
- undo页
- 系统页
- 事务数据页
- 插入缓冲位图页
- 插入缓冲空闲列表页
- 未压缩的二进制大对象页
- 压缩的二进制大对象页
7.行
①InnoDB存储引擎是面向列的,也就是说数据是按行存放的
8.InnoDB行记录格式
①