文章目录
文章目录
表结构定义文件 .frm,是Mysql数据库本身的文件,和存储引擎无关。
表空间文件 .ibd。
系统表空间(共享表空间)
https://dev.mysql.com/doc/refman/5.7/en/innodb-system-tablespace.html
系统表空间用于存储 doublewrite buffer,change buffer, undo logs;
如果在system tablespace下建表,那么系统表空间里也会存储表数据 和 索引;
默认情况下,系统表空间文件命名为 ibdata1,其 大小 和 数量 由innodb_data_file_path
参数控制,
ibdata文件会逐渐增大,默认大小没有限制;
innodb_data_file_path=ibdata1:5G;ibdata2:5G;ibdata3:5G:autoextend:max:20G
innodb_autoextend_increment=64
在初始化mysql实例时会先初始成三个ibdata文件,每个文件大小5G,当空间用到不够
时(也就到了ibdata3),会在ibdata3文件的基础上每次自增64M,最大自增到20G;
独立表空间
MySQL 5.6.6之前的版本,InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1;
从mysql 5.6.6版本开始,独立表空间默认是开启的;
在独立表空间开启的情况下,每创建一个表 ,这个表都有自己独立的数据文件;
表现如下:
表名.frm # 表的表结构文件(里面存放的是表的创建语句)
表名.ibd # 表的数据文件(当有数据往表中插入时,数据就保存之个文件中的)