您的位置:首页 > 数据库 > MySQL

[Mysql]Innodb 独立表空间和共享表空间

2014-12-11 22:16 851 查看
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'

更改之后再去看数据文件,可以观察数据文件的变化。

相关连接:

http://database.51cto.com/art/201011/234527.htm

http://blog.itpub.net/15480802/viewspace-759650/

本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/41877319

作者orangleliu 采用署名-非商业性使用-相同方式共享协议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: