InnoDB系统表空间包含InnoDB数据字典(InnoDB相关对象的元数据),是doublewrite缓冲区,change buffer更改缓冲区和undo logs回滚日志的存储区域。
系统表空间还包含任何用户在系统表空间中创建的表和索引数据。
通过innodb_file_per_table=ON 来开启
使用ibd文件来存放数据,且每个表一个ibd文件。
从InnoDB的整体架构图的右边可以看到:ibdata文件可以被视为系统表空间。
在独享表空间模式下,表数据page就不属于系统表空间了。
默认情况下是共享模式。使用ibdata文件,所有表共同使用一个(或者多个、自行配置)ibdata文件。
在共享模式下,表的数据page也是属于系统表空间的。
系统表空间由一个或多个数据文件表示。默认情况下,在MySQL数据目录中创建一个名为ibdata1的系统数据文件。系统数据文件的大小和数量由innodb_data_file_path项控制。
innodb_data_home_dir ibdata
每一个ibdata文件的名称,可以配置多个。目录为空的话,file_path就需要填写绝对路径了。
可以指定ibdata文件的大小,只有最后一个ibdata文件可以配置成自动扩展类型。
innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:10M:autoextend
innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend