MySQL表空间回收
MySQL释放空间
·
MySQL表空间回收
环境介绍:
OS CentOS 6.X
MySQL:5.5.40
查看数据库对象SQL:http://blog.csdn.net/jacson_bai/article/details/44017015情况1:删除表里面的数据,表对应的物理空间未释放
产生原因:类比Oracle的高水位线产生原理
解决办法:
方法1:
执行 OPTIMIZE TABLE 表名;
mysql>use mysql;
mysql>optimize table test.t1;
注意:1.OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用;
2.OPTIMIZE TABLE会产生锁,推荐在业务低峰时执行;
3.对于DDL频繁的表,定期执行OPTIMIZE TABLE
方法2:
写一SQL,创建新表,删除旧表,新表重命名;
mysql>old_tables create new_table;
mysql>truncate table old_tables;
mysql>rename new_tables to old_tables.
方法3:执行ALTER TABLE t1 ENGINE = InnoDB;
原理就是:重建表!!!
参考链接:http://dev.mysql.com/doc/refman/5.5/en/alter-table.html
关键描述:
形成原因:
临时解决办法:
1.使用mysqldump备份数据库,关闭mysql,
2.手动删除ibdata,ib_logfile文件
3.恢复数据库
永久解决办法:
参考链接:http://blog.csdn.net/jacson_bai/article/details/45919403
1.使用独立表空间2.限制ibdata单个文件的大小
更多推荐
所有评论(0)