-1
我期待我的優化SQL查詢,並想知道,在優化性能方面,如果加入子查詢結果性能
SELECT A.this, B.another FROM A
JOIN B
ON A.this = B.that
WHERE B.another > 6
AND A.something < 3;
優於:
SELECT A.this, B.another
FROM (SELECT this FROM A WHERE A.something < 3) AS A
JOIN (SELECT another FROM B WHERE B.another > 6) AS B
ON A.this = B.that;
Postgres有一個非常聰明的優化器,所以我不認爲它實現了子查詢。換句話說,這兩個版本應該有類似的表現。但是,你應該看看查詢計劃。 – 2014-12-02 13:28:08
我認爲這種優化最好留給數據庫,並且使用第一個查詢的標準語法給予優化器最大的範圍,但我不是DBA。我會很樂意聽到關於這方面的更多消息。 – Resource 2014-12-02 13:28:34
當你嘗試這兩種方法時,結果如何?這是唯一真正知道的方法。 – Flimzy 2014-12-02 13:35:57