我有一个开发 MySQL 服务器,运行在 VirtualBox 和 Windows 下的专用 CentOS 虚拟机上。
我已经使用它几个月了,它的性能相当不错,并且有使用 SQL 补丁从头开始创建项目数据库的历史记录,到目前为止,运行时间不到一分钟。
当我今天尝试重新运行补丁时,它开始花费几分钟,这比以前慢得多。
这是top
看起来最“忙碌”时的输出:
但大多数时候,输出如下:
mysqladmin status
说:
Uptime: 805 Threads: 3 Questions: 894 Slow queries: 0 Opens: 1277
Flush tables: 1 Open tables: 98 Queries per second avg: 1.110
因此,对我来说,服务器看起来几乎处于空闲状态,尽管它实际上正在运行一个很大的 SQL 补丁,并且让我等待了很长时间......
知道什么原因可能导致它速度减慢吗?
答案1
好的,我找到了原因。查询本身并不慢,但与 MySQL 服务器的连接很慢。而且由于命令mysql
行为每个补丁执行一次,因此速度非常慢。
我添加了以下行my.cnf
:
[mysqld]
skip-name-resolve
一切恢复正常!