- InnoDB在系统表空间中存储元数据和缓冲区,包括:
--InnoDB 数据字典:表、索引和列元数据
--更改缓冲区:对二级索引页面的更改
--双写缓冲区:确保崩溃安全写入
- 这是一个单一的,包含数据目录中的一个或多个文件
--通常,ibdata1、ibdata2、...
- 每个文件可以是常规文件或裸设备分区
InnoDB表空间是可以存储一个或多个InnoDB表和相关索引的数据文件。InnoDB使用以下类型的表空间:
- 数据表空间
--系统表空间
--单表文件表空间
--通用表空间
- 还原表空间
- 临时表空间
控制表空间的选项:
- innodb_data_file_path选项配置磁盘上InnoDB系统表空间的大小和物理位置
--默认值:ibdata1:12M:autoextend
一个名为ibdata1的文件,大小为12MB,自动扩展
--示例值:ibdata1:20M;/ext/ibdata2:10M:autoextend
两个文件:
数据目录中的ibdata1,大小固定为20MB
/ext目录中的ibdata2,大小为10MB,自动扩展
--如果系统表空间中有一组文件,则只有该组的最后一个文件可以自动扩展
文件集中组后一个以前的文件大小固定
如果最后一个文件填满,InnoDB会自动增加其大小
- innodb_file_per_table选项指定MySQL是在系统表空间中还是在单独的.ibd文件中存储新表数据和索引。