【发布时间】:2013-01-15 19:35:53
【问题描述】:
我有一个托管许多数据库 (~30) 的 mysql 服务器 (5.0.58)。几年前,我开始遇到一些数据库的性能问题,我最终通过执行夜间 cron 作业来使用以下命令检查/优化数据库来解决这个问题:
mysqlcheck --check --auto-repair --analyze --optimize --silent --all-databases
此命令通常在 ~ 20 分钟内执行。这就像一个魅力,直到上个月。现在执行此命令时,机器上的 CPU 会出现峰值,机器几乎没有响应。我唯一能做的就是重新启动 mysqld 服务(等待 10-15 分钟后才能登录)。在查看mysql进程列表时出现这种情况,似乎有些表也可能被锁定,但我还在研究这个。
有人知道为什么这个命令会锁定服务器吗?我打算尝试将命令限制为特定数据库(而不是 --all-databases),看看这是否有帮助。
【问题讨论】:
-
为了将来参考,数据库问题不属于这里,有一个专门为它们设计的子站点。登录并在dba.stackexchange.com/questions 上发布未来的问题,您将获得更高的接收率。
-
MySQL当前版本是5.5,你报5.0.58。这可能是软件中的错误,更新到最新版本可能会解决您的问题。