MySQL Query不会停止运行

时间:2014-09-21 01:09:22

标签: mysql sql

我在MySQL中有一个查询,它基本上从一个包含大约500万行的表中返回大量的分组结果。我正在按8个单独的东西进行分组,并返回20个左右的列,其中许多是sum(case when())计算。我知道它应该花费很长时间,而我的电脑并不是最快的(虽然它并不是特别慢)。但它已经运行了9个小时,但仍然没有完成。这是正常的吗?似乎没什么可以花这么久。

1 个答案:

答案 0 :(得分:0)

问:这是正常的吗?

答:对于产生大量中间结果集的查询,查询可能会运行很长时间,甚至超过9个小时。

如果查询做了不合理的工作而花费了不合理的长时间,那就没有异常。

但我们通常会避免编写执行异常工作的查询。

至于为什么查询做了这么多工作......可能是一个非常低效的执行计划,没有使用JOIN操作的索引,或者是一个巨大的中间结果集。

在另一个会话中,您可以执行SHOW PROCESSLIST来验证查询是否实际正在运行。输出将包括会话处于当前状态的已用时间...