【发布时间】:2011-07-25 09:13:04
【问题描述】:
MySQL 有一个OPTIMIZE TABLE 命令,可用于回收 MySQL 安装中未使用的空间。有没有办法(内置命令或通用存储过程)为数据库和/或服务器安装中的每个表运行此优化,还是您必须自己编写脚本?
【问题讨论】:
-
请注意,这不一定会回收空间。如果您将 InnoDB 与单个文件(可能是当今最常见的设置)一起使用,而不是每个表单独的文件,那么最终您仍将使用相同数量的磁盘空间。事实上,我已经看到它实际上使用了更多的磁盘空间。对于大表,表也可能被锁定很长时间。
-
OPTIMIZE TABLE对 MyISAM 很有用。现在该引擎即将消失,对OPTIMIZE TABLE的需求也将消失,尤其是需要定期优化所有表。 -
+1 for good info rick -- 但考虑到标准的现实世界数据库实践,如果旧的 MyISAM 表再存在十年,我不会感到惊讶