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 验证所有表是否正常工作。就是这样。如果我在生产服务器上这样做,我的老板会解雇我:)
每个星期六早上 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 验证所有表是否正常工作。就是这样。如果我在生产服务器上这样做,我的老板会解雇我:)