我的查询只在我的开发机器上运行0.004s
(在硬盘驱动器上运行WampServer的Windows 7)但在生产服务器上运行0.057s
(在SSD上运行CENTOS 6.5) - a相差14倍。两个MySQL版本都是一样的。
两个服务器上的explain
结果相同,数据库也是如此(我从生产服务器导出数据库并将其导入我的开发机器)。我也在两台服务器上运行了optimize table
,并尝试输入SQL_NO_CACHE
,但这对任何一台服务器都没有任何影响。
Navicat在“个人资料”标签下显示:
生产
开发
两个服务器上的查询执行时间一致。
数据库版本相同,内容相同,explain
结果相同。有没有办法确定为什么查询在我的生产服务器上花了14倍的时间?
编辑:为了确定MySQL服务器是否处于负载状态,我在Navicat中找到了Process List区域,并且可以看到只有少数几个进程,所有这些进程都用于" Sleep"命令。所以我不认为生产服务器有任何负担。
答案 0 :(得分:1)
生产服务器似乎在列出的每个参数中都较慢。可能涉及很多因素,因此您应该检查每一个因素:
top
查看正在运行的进程,并检查它们是否正在使用大量计算能力。使用MySQL命令SHOW STATUS
获取有关MySQL服务器状态(内存,打开表,当前连接等)的信息。