MySQL: mysqlcheck 占用太多磁盘 space 来执行操作

MySQL: mysqlcheck taking too much disk space to perform operations

每个星期六早上 8 点,我都会使用以下 sh 脚本对我的所有数据库进行维护。我 运行 一个 mysqlcheck--check--optimize--analyze

这是脚本:

# check: checks table for integrity errors
mysqlcheck -u root -h mydbendpoint.com -p'mypass' --check --all-databases

# optimize: reorganizes physical storage of table and index data
mysqlcheck -u root -h mydbendpoint.com -p'mypass' --optimize --all-databases

# analyze: rebuild and optimize the performance of indexes
mysqlcheck -u root -h -h mydbendpoint.com -p'mypass' --analyze --all-databases

问题是,当这个 .sh 是 运行ning 时,它需要 很多 磁盘 space。这是我的 Amazon RDS 可用磁盘 space:

的屏幕截图

三个命令中的哪一个占用了这么多磁盘 space 来制作那些 mysqlchecks--check--optimize 还是 --analyze?还是他们三个?

我在 official documentation 上找不到任何相关信息。

提前致谢。

它是 --optimize,它使用了所有 space。它基本上会重建所有表以重新获得未使用的 space(已删除的数据),如果您已将服务器配置为 innodb_file_per_table

这个很少需要,你可以跳过。

就是说,您真的在 所有数据库 上都这样做了吗?这应该也是没有必要的。我只有一个数据库,我每周检查一次,这个主机的目的只是为了验证我的备份是否有效。每周在此主机上恢复一次备份,然后 mysqlcheck 验证所有表是否正常工作。就是这样。如果我在生产服务器上这样做,我的老板会解雇我:)