独立表空间优点: 1.有自已独立的表空间; 2.数据和索引都会存在自已的表空间中; 3.单表可以在不同数据库移动。 4.支持空间回收(除drop table操作外) Drop table操作删除大量数据后通过:alter table TableName engine=innodb,回收不用的空间。 缺点: 单表增加过大,如超过100个G。 结论: 共享表空间在Insert操作上有优势外,其它都没独立表空间表现好 启用独立表空间时,合理调整一下:innodb_open_files innodb_file_per_table = 1 可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。
#innodb_file_per_table设置.开启方法:
#在my.cnf中[mysqld]下设置
innodb_file_per_table=1
#查看是否开启:
mysql> show variables like ‘%per_table%’;
#关闭独享表空间
innodb_file_per_table=0关闭独立的表空间
mysql> show variables like ‘%per_table%’;将共享表空间转化为独立表空间有如下两种方法: 1.首先逻辑备份,再修改配置文件my.cnf中的参数innodb_file_per_table = 1,重启服务后将逻辑备份导入即可。 2.修改配置文件my.cnf中的参数innodb_file_per_table = 1,重启服务后将需要修改的所有innodb表都执行一遍:alter table table_name engine=innodb; 注意:使用第二种方式修改之后,原来库中的表中的数据会继续存放于ibdata1中,新建的表才会使用独立表空间。