Mysql 使用 OPTIMIZE TABLE 优化数据库空间

今日rds报警数据库容量占用超过95%;
使用 OPTIMIZE TABLE 成功将容量缩减11G;
当库中删除了大量的数据后,或者如果经常对含有可变长度行的表(含有 VARCHAR, BLOB或TEXT列的表)进行了很多更改;
被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。但是旧的记录位置一直保持在哪里,浪费了很多空间。
因此对于经常进行上述操作的表可以使用OPTIMIZE TABLE来重新利用未使用的空间,并整理数据文件的碎片。
在多数的设置中,根本不需要运行OPTIMIZE TABLE,不需要经常运行,每周一次或每月一次即可,只对特定的表运行。

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用
在OPTIMIZE TABLE运行过程中,MySQL会锁定表