1

假设您有类似的查询

SELECT
    t1.c1,
    t2.c2,
    ... more fields from joins ...
FROM t1
LEFT JOIN t2 ON t1.id = t2.id
... more joins ...
GROUP BY t1.field
WHERE ...

而且您遇到了性能问题,并且您认为您已经涵盖了此类查询的所有常见优化ON,例如在,GROUP BY等中的列上定义索引WHERE。但它仍然非常慢。

4

1 回答 1

1

检查您的所有联接是否都是实际表而不是视图!

我知道这是相当明显的陈述,但它难住了一段时间,因为我刚刚忘记了其中一个连接是视图。

这是一个在我自己找到答案之前我没有问过的问题,但我想发帖以帮助其他有同样问题的人,因为在任何其他关于优化 GROUP BY 查询的帖子中都没有提到这个问题与 JOIN。我不确定这是否在 SO 上被接受,但我也在这篇文章中添加了接受的答案所以如果管理员想删除这篇文章,我不会被冒犯。

于 2012-06-09T12:25:37.003 回答