我想優化使用內部聯接的查詢,並且我對兩個非常類似的查詢之間的性能差異感到困惑。試圖瞭解兩個內部聯接查詢之間的行爲差異
我希望對此有所瞭解。
的表是這樣的:
骨料:
+-recid(key)-+-avg---+
+------------+-------+
歷史:
+-recid(key)-+-value-+
+------------+-------+
的目的是讓,對於一個給定的密鑰(假設1234),AVG和值。
我已經嘗試了兩個查詢誰似乎很相似,我說:
SELECT a.avg, b.value FROM aggregates a, history b
WHERE a.recid = b.recid
AND a.recid = 1234
需要5秒的運行
但是,
SELECT a.avg, b.value FROM aggregates a, history b
WHERE a.recid = 1234
AND b.recid = 1234
運行在不到一秒鐘。
這兩個查詢給出了非常相同的結果。我想了解在性能上的巨大差異
標記您正在使用的dbms。不同的產品以不同的方式優化。 – jarlh
BTW,你運行兩個查詢多次,在不同的順序? (冷/熱數據。) – jarlh
是的,我已經試過了,這是非常reproductible,一個是一貫〜5慢於其他 – Maxime