每个星期六早上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运行时,它占用了大量的磁盘空间。以下是我的Amazon免费磁盘空间的截图:

这三个组件中哪一个占用了这么多的磁盘空间来制造mysqlchecks?--check、--optimize还是--analyze?还是他们三个?
我在正式文件上找不到任何关于这个的东西。
提前谢谢。
发布于 2018-09-14 07:50:10
使用所有这些空间的是--optimize。如果您已经用表格配置了服务器,它基本上会重新构建所有表以重新获得未使用的空间(已删除的数据)。
这很少是必要的,你可以跳过它。
也就是说,你真的在你所有的数据库上这么做?这也不应该是必要的。我只有一个数据库进行每周一次的检查,这个主机的目的仅仅是验证我的备份是否有效。在此主机上每周恢复备份一次,然后mysqlcheck验证所有表是否正常工作。就是这样。我的老板会解雇我,如果我在生产中的服务器上这样做的话:)
https://stackoverflow.com/questions/52295226
复制相似问题