我有兩個表A和B.這些表通過A.bid = B.id.鏈接。表A有19列,表B有10列。兩張表都包含大約40,000條記錄。SQL投影成本
我一直在尋找在以下3個簡單的查詢:
-- Query 1
SELECT Col1, Col2, Col3, Col4, Col5 FROM A, B
WHERE A.bid = B.id
-- Query 2
SELECT * FROM A
-- Query 3
SELECT Col1 FROM A
我發現有趣的是,查詢2採用目前爲止最長的運行,接着是查詢1(加入)並以最快的被查詢3(一個更嚴格的預測)。所有3個查詢返回相同的行數。
是什麼導致了這種行爲?爲什麼投影中的列數對性能有如此大的影響?當然,我明白投影並不是免費的,但我不明白加入的方式(儘管投影更加有限)可以比簡單的SELECT *
運行更快(速度更快)。
謝謝。
我想我估計額外的讀取/網絡流量的成本。我非常關注聯盟中關鍵比較的成本,以致我看到了這些額外成本。謝謝。 –