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行记录格式