我正在使用类似于以下形式的 SQL 查询:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
AND table1.period = table2.period
它要么太慢,要么陷入僵局,因为返回至少需要 4 分钟。如果我将其更改为:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
WHERE table1.period = table2.period
然后它工作正常(尽管没有返回正确的列数)。有什么办法可以加快这个速度吗?
更新:如果我切换后一个查询的最后两行,它会做同样的事情:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.period = table2.period
WHERE table1.person_uid = table2.person_uid
更新2: 这些实际上是我加入的观点。不幸的是,它们位于我无法控制的数据库中,因此我无法(轻松)对索引进行任何更改。我倾向于同意这是一个索引问题。我会在接受答案之前稍等片刻,以防有一些我不知道的神奇方法来调整这个查询。否则,我将接受当前答案之一,并尝试找出另一种方法来做我想做的事情。感谢大家到目前为止的帮助。