2013-08-20 207 views
0

我有一个SQL ...这是一个“选择”。我无法显示它,但它有5个联合和许多联接(内部和左侧)。我还创建了所有必要的索引。在本地机器上,花费少于一秒(〜0.5秒)的时间来获得结果。但在服务器上执行的时间非常长。 本地机器和服务器上的数据库是相同的。我最近抛弃了服务器数据库并在本地机器上恢复它。 大约35分钟前,我启动了一个“解析”这个SQL,它仍在运行。另外,我在过程列表中看到了“复制到tmp表”标签。 所有表格都经过优化。我使用MyISAM和InnoDB引擎进行了测试。 服务器负载平均小于1,MySQL也不负载。查询执行非常缓慢

这可能很重要 - 云服务上的服务器。我无法访问云统计信息 - 只需使用服务器即可。

你能告诉我什么?

+0

解释需要35分钟吗? Google MySql解释缓慢。 –

+0

如果解释需要35分钟,则说明您的服务器或与服务器的连接存在重大问题。 –

+0

你可以显示查询并更改表名/字段等吗? – JsonStatham

回答

0

我找出原因。 正如我之前所说(在评论中),我为每个子查询都做了EXPLAIN,并注意到与本地计算机上的相同EXPLAIN存在一些差异(针对5个子查询中的2个)。 它通过创建附加索引来解决。 不同的机器 - 不同的结果。我预计这会有些不同,但我甚至无法做到解释。这很奇怪。只帮助部分EXPALIN。

谢谢大家。