1

我有一个 SQL 查询需要 7 秒才能在一台计算机上运行,​​但在另一台计算机上(相同的硬件,数据库已使用 mysqldump 复制,所以是相同的),相同的查询运行超过 2000 秒。

我如何找出这是为什么?我可以在网上找到的关于调试慢 mysql 的所有建议似乎都归结为“查找慢查询”。这对我没有帮助。Show processlist 没有显示任何其他正在运行的查询,那么为什么在一台计算机上执行此查询的时间比另一台计算机长数百倍呢?

4

1 回答 1

0

我的理解是您的 SQL Server 在两种情况下都是相同的。您的意思是,从 client1 执行查询 x 需要几秒钟;而从其他客户端 client2 则需要超过 2000 秒。

我觉得问题是client2和您的数据库服务器之间的网络。尝试在这两个服务器之间 ping 通。它应该给你一些提示。您提到服务器未显示正在执行的查询这一事实也支持了这一理论。

如果在这两种情况下 SQL Server 不同;而索引等是相同的;那么问题是很长时间没有在client2上执行ANALYZE。

于 2013-01-18T17:32:43.193 回答