一、共享表空间的介绍
共享表空间默认是开启的,默认文件名为ibdata1,保存在当前mysql实例的数据目录下(当然你也可以指定其它目录,建议就还是不指定存储路径了),文件默认只有一个,大小是12M,可以用以下命令查看共享表空间的文件名以及文件保存路径;
mysql> show global variables like "innodb_data_file_path";
+-----------------------+------------------------+
| Variable_name | Value |
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
+-----------------------+------------------------+
1 row in set (0.03 sec)
当共享表空间的存储文件(ibdata1)满了的时候,会自动扩展(你看上面有一个autoextend),注意:这里自动扩展autoextend只能应用于最后一个文件,每次扩展大小为64M;也就是说ibdata1文件会扩展成76M(12M+64M);控制让其每次自动扩展大小的参数如下所示,默认是64M;
mysql> show global variables like "innodb_autoextend_increment";
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| innodb_autoextend_increment | 64 |
+-----------------------------+-------+
1 row in set (0.01 sec)
共享表空间里面存放的主要是数据和索引,前提是你没有开启独立表空间,但是这又有两种情况:
01:mysql 5.6.6及以前的版本默认是没有开启独立表空间的,前提是你没有手动开启独立表空间;
02:mysql 5.6.6以后的版本默认是开启了独立表空间的,你得把独立表空间给关闭;
当你开启了独立表空间后,共享表空间里面就没有存放数据和索引了,但是还存放了数据字典、变更缓冲区、双写缓冲区
二、共享表空间的优缺点
三、共享表空间的设置
四、共享表空间的大小调整