0

我有一个 sql ......它是一个“SELECT”。我无法展示它,但它有 5 个联合和很多连接(内部和左侧)。我还创建了所有必要的索引。在本地机器上,获得结果只需不到一秒(约 0.5 秒)。但是在服务器上它执行非常非常长的时间。本地机器和服务器上的数据库是相同的。我最近转储了服务器数据库并将其还原到本地计算机上。大约 35 分钟前,我启动了这个 sql 的“解释”,它仍在运行。我还在进程列表中看到了“复制到 tmp 表”标签。所有的表都进行了优化。我使用 MyISAM 和 InnoDB 引擎进行了测试。服务器平均负载小于 1,MySQL 也没有负载。

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

你能给我什么建议?

4

1 回答 1

0

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

谢谢大家。

于 2013-08-21T07:18:38.783 回答