Mysql的InnoDB引擎-4.表(1)

luotuofeile 2020-04-16

InnoDB存储引擎中,表都是根据主键进行顺序存放的,这种存放方式的表叫做索引组织表。

InnoDB逻辑存储结构

InnoDB从逻辑结构存储角度,从大的维度到小的维度依次为:表空间、段(segment)、区(extent)、页(page)。

表空间

InnoDB最顶层的逻辑结构,所有数据都存放在表空间中。

innodb_file_per_table参数,可以设置每张表内的数据存放到单独的一个表空间中。但是存放的只是数据,索引以及插入缓冲bitmap页。其他类型的数据,回滚信息,插入缓冲索引页,系统事务信息,二次写缓冲等还是存放在共享表空间中。

常见的段有数据段、索引段、回滚段等。数据段为B+树的叶子节点,索引段为B+树的非索引节点,

区是由连续页组成的空间,为了保证区中页的连续性,InnoDB存储引擎一次从磁盘申请4~5个区。

InnoDB磁盘管理的最小单位,默认每个页大小为16KB。

InnoDB存储引擎中常见的页类型有:

  • 数据页(B-tree Node)
  • undo页(undo Log Page)
  • 系统页(System Page)
  • 事务数据页(Transaction system Page)
  • 插入缓冲位图页(Insert Buffer Bitmap)
  • 插入缓冲空闲列表页(Insert Buffer Free List)
  • 未压缩的二进制大对象页(Uncompressed BLOB Page)
  • 压缩的二进制大对象页(compressed BLOB page)

InnoDB是面向列的,也就是说数据是按行进行存放的。

相关推荐