前几天mysql突然变得很慢,查询需要10多秒才能完成,而以前是100ms以内完成的……大概持续了一个小时,然后速度又恢复正常了。什么会导致这样的问题?
更多信息: mysql 版本是 5.0.51a mysql 数据库位于一个具有 1.5 GB ram 的专用盒子上。当 mysql 服务器很慢时,没有使用交换。
这是来自数据库http://pastebin.com/au6yMWqQ的 mysqlreport没有一个缓存已满..
我注意到服务器用于解析主机名的 DNS 服务器最近有时有点慢。这会产生影响吗?
谢谢,我已经在 serverfault 上交叉发布了这个,希望没问题...
编辑:我可以尝试在 ec2 上进行主主复制以防止问题再次发生吗?连接到mysql数据库的实例有一半在ec2上(其余的直接来自layeredtech)
您可以尝试以下方法来改善情况
请按照以下步骤操作:
步骤01)将以下内容添加到/etc/my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
Run Code Online (Sandbox Code Playgroud)
步骤02)service mysql restart
步骤03)停止使用具有DNS名称的mysql用户。运行这样的查询:
SELECT user,host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)
任何拥有 DNS 名称的用户,只需将其替换为 IP 地址(例如 10.85.115.73)或网络块(例如 10.85.115.%)
您可能还想间歇性地运行此命令(例如在 crontab 中每小时运行一次)
FLUSH HOSTS;
Run Code Online (Sandbox Code Playgroud)
试一试 !!!