数据库中收缩表空间的方法
要收缩一个表,只是 delete 掉表里面不用的数据的话,表文件的大小是不会变的,你还要通过 alter table 命令重建表,才能达到表文件变小的目的。重建表的两种实现方式,Online DDL 的方式是可以考虑在业务低峰期使用的,而 MySQL 5.5 及之前的版本,这个命令是会阻塞 DML 的,这个你需要特别小心。
从 MySQL 5.6 版本开始,alter table t engine = InnoDB(也就是 recreate);
analyze table t 其实不是重建表,只是对表的索引信息做重新统计,没有修改数据,这个过程中加了 MDL 读锁;
optimize table t 等于 recreate+analyze。
本文介绍了如何在MySQL中有效地收缩表空间,强调了删除数据后需要通过ALTER TABLE命令重建表来减小文件大小。从MySQL 5.6版本开始,可以使用ALTER TABLE ... ENGINE=InnoDB实现。此外,ANALYZE TABLE仅更新统计信息,OPTIMIZE TABLE则等同于重建加分析。在执行这些操作时,需要注意对业务的影响,如在线DDL可能在低峰期进行,以及MySQL 5.5及之前版本的阻塞问题。

1810

被折叠的 条评论
为什么被折叠?



