我有一个在VirtualBox和Windows下的专用CentOS虚拟机上运行的开发MySQL服务器。
我已经用了好几个月,performance相当不错,并且有一个SQL补丁的历史,从头开始创build一个项目的数据库,到现在为止,运行时间不到一分钟。
当我今天尝试重新运行补丁程序时,开始需要几分钟的时间,这比以前要慢很多。
当看起来最“繁忙”的时候,这是一个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补丁,使我等待了很长时间…
任何想法可能会减慢它?
好的,我find了原因。 查询本身并不慢,但与MySQL服务器的连接是。 而且因为每个补丁都执行了一次mysql
命令行,所以这个过程非常缓慢。
我将下面一行添加到my.cnf
:
[mysqld] skip-name-resolve
一切都恢复正常了!