mysql:mysqlcheck占用了太多的磁盘空间来执行操作

o3imoua4  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(556)

每个星期六早上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 ? 还是他们三个?
我在官方文件上找不到这方面的任何信息。
提前谢谢。

kqlmhetl

kqlmhetl1#

这是最重要的 --optimize 它占用了所有的空间。它基本上会重建所有表,以重新获得未使用的空间(已删除的数据),如果您已经为服务器配置了innodb\u file\u per\u table
这是很少必要的,你可以跳过。
也就是说,你真的在你所有的数据库上都这么做了?这也不应该是必要的。我只有一个每周检查一次的数据库,而这个主机的目的仅仅是验证我的备份工作正常。每周在这个主机上恢复一次备份,然后mysqlcheck验证所有表是否正常工作。就这样。如果我在生产服务器上这样做,我的老板会解雇我:)

相关问题