我有一个SQL查询,它在一台计算机上运行需要7秒,但在另一台计算机上(相同的硬件,数据库已使用mysqldump复制过来,因此也是相同的),相同的查询运行了2000秒以上。
我怎么才能找出原因呢?我在网上找到的所有关于调试慢查询mysql的建议似乎都可以归结为“找到慢查询”。这对我没什么帮助。Show processlist没有显示任何其他正在运行的查询,那么为什么在一台计算机上执行这一查询要比在另一台计算机上多花几百倍的时间呢?
发布于 2013-01-19 01:32:43
据我所知,您的SQL Server在这两种情况下都是一样的。您的意思是,当从client1执行查询x时,它只需要几秒钟;而从其他客户机client2执行查询x,则需要2000秒以上。
我觉得问题出在client2和你的数据库服务器之间的网络上。尝试ping这两台服务器。它应该会给你一些提示。您提到的服务器没有显示查询正在执行的事实也支持这一理论。
如果在这两种情况下,SQL Servers是不同的;而索引等是相同的;那么问题是分析已经很长时间没有在client2上执行了。
https://stackoverflow.com/questions/14404122
复制相似问题