innodb有2中表空间方式: 共享表空间 和 独立表空间
查询数据的设置:
show variables like '%per_table';
默认是共享表空间,独立表空间在配置文件中添加 innodb_file_per_table=1 就可以设置了。
共享表空间数据增大以后可以使用
innodb_data_file_path的配置规划多个表空间文件
独立表空间一般是单表过大的情况下使用(至少上几个G)
想要将共享表空间转化为独立表空间有两种方法:
1.需要锁库,全库导出,停止服务,ibdata1 可以移走或者删除,然后配置my.cnf,然后在启动mysql,
把数据导入。
2.修改配置文件my.cnf中的参数innodb_file_per_table参数为1,重启服务后将需要修改的所有innodb表都执行一遍:alter table table_name engine=innodb;
使用第二种方式修改后,原来库中的表中的数据会继续存放于ibdata1中,新建的表才会使用独立表空间
可能会用到的sql:
SELECT `TABLES`.TABLE_SCHEMA,`TABLES`.TABLE_NAME,`TABLES`.`ENGINE` FROM information_schema.`TABLES`
WHERE `ENGINE`='INNODB' AND TABLE_SCHEMA='Idx'
更改之后再去看数据文件,可以观察数据文件的变化。
相关连接:
本文出自 “orangleliu笔记本”博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/41877319
作者orangleliu 采用署名-非商业性使用-相同方式共享协议