每个星期六早上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
它需要大量的磁盘空间。以下是我的亚马逊rds免费磁盘空间截图:
三个命令中的哪一个占用了这么多磁盘空间 mysqlchecks
? --check
, --optimize
或者 --analyze
? 还是他们三个?
我在官方文件上找不到这方面的任何信息。
提前谢谢。
1条答案
按热度按时间kqlmhetl1#
这是最重要的
--optimize
它占用了所有的空间。它基本上会重建所有表,以重新获得未使用的空间(已删除的数据),如果您已经为服务器配置了innodb\u file\u per\u table这是很少必要的,你可以跳过。
也就是说,你真的在你所有的数据库上都这么做了?这也不应该是必要的。我只有一个每周检查一次的数据库,而这个主机的目的仅仅是验证我的备份工作正常。每周在这个主机上恢复一次备份,然后mysqlcheck验证所有表是否正常工作。就这样。如果我在生产服务器上这样做,我的老板会解雇我:)