【发布时间】:2025-12-13 21:45:01
【问题描述】:
背景
我有一个 Drupal 站点,其中包含一个由 phpmyadmin 管理的数据库。该数据库的大小超过 1500 个表。我在速度方面遇到了很大的问题,正在寻找一个好的解决方法。该数据库已有 2.5-3 年的历史,从未维护过(据我所知)。
研究
我一直试图找到一种方法来加快速度,但一切都让我回到了数据库的纯大小。我遇到了命令
OPTIMIZE TABLE
tbl_name [, tbl_name] ...
女巫很快带我去更强大的地方
mysqlcheck -o <db_schema_name>
因为我们只有一个数据库,所以我没有可以使用此命令的测试区域。我知道在我的数据库上运行这个命令需要很长时间,由于数据库的庞大规模,可能需要几天时间。
推理
我想使用它的原因是因为 MySQL 似乎每天都会关闭或崩溃。在 phpmyadmin 我看到了这个
它只启动了 9 小时,自从我 1 个月前开始工作以来,我还没有关闭它。似乎永远不会超过 15 小时。
状态变量
这是将值显示为警报的状态变量列表,我希望通过 mysqlcheck 修复其中的一些。
结论
我想知道在数据库上运行 mysqlcheck 是否会导致任何问题或损坏我数据库中的任何数据。了解这样的操作需要多长时间也很方便。
【问题讨论】:
-
你确认不是OOMing吗?
-
登录尝试失败的次数也是惊人的,你确定不是有人试图强行进入吗?
-
对不起,“OOMing”这个词也指的是什么?因为我在想的只是魔兽世界中的治疗师大喊“我是OOM,我是OOM,不要拉!!!”
-
你最好在 DBA * 论坛上发布这个。
-
当服务器内存不足时,内核会杀掉最大的进程。 Mysql 不只是自行重启。错误日志说什么?你做过最基本的故障排除吗? os 日志、db 日志中是否有任何内容?有没有足够的内存。机器是否正在重新启动......等等等等。