MySQL-optimize

MySQL-optimize

起男 578 2020-12-23

MySQL-optimize

OPTIMIZE [LOCAL|NO_WRITE_TO_BINLOG] TABLE tab_name [,tab_name...]

如果已经删了了表的一大部分,或者已经对含有可变长的表(含有varchar、blob或text列的表)进行了很多修改,则应使用 optimize table

被删除的记录被保存在链接清单中,后续的insert操作会重新使用旧的记录位置。

可以使用optimize table来重新利用未使用空间,并整理数据文件的碎片。

在多数设置中,根本不需要运行optimize table。即使对可变长度的进行了大量的更新,也不需要运行,只需每周或每月运行即可,且只对特定的表。

optimize table只对myisam、bdb和innodb表起所用。

在optimize table运行过程中,MySQL会锁定表。