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

  |   0 评论   |   921 浏览

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