mysql释放空间

2015-11-21 01:55:32 · 作者: · 浏览: 4
mysql释放空间
生产系统中有些表使用delete删除了一些行后,发现空间并未释放
产生原因:类比 Oracle的高水位线产生原理
解决办法:

方法1:

执行 OPTIMIZE TABLE 表名;

注意:
1.OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用;
2.OPTIMIZE TABLE会产生锁,推荐在业务低峰时执行;
3.对于DDL频繁的表,定期执行OPTIMIZE TABLE

方法2:

写一SQL,创建新表,删除旧表,新表重命名;

old_tables create new_table;

truncate table old_tables;
rename new_tables to old_tables.