嗨,試圖優化這個查詢解決重複的用戶問題:,Postgres的查詢optmization
SELECT userid, 'ismaster' AS name, 'false' AS propvalue FROM user
WHERE userid NOT IN (SELECT userid FROM userprop WHERE name = 'ismaster');
的問題是,NOT IN後的選擇是120.000記錄,它採取永遠。
使用作爲回報意見建議的解釋前綴:
QUERY PLAN
--------------------------------------------------------------------------------
--
Seq Scan on user (cost=5559.38..122738966.99 rows=61597 width=8)
Filter: (NOT (SubPlan 1))
SubPlan 1
-> Materialize (cost=5559.38..7248.33 rows=121395 width=8)
-> Seq Scan on userprop (cost=0.00..4962.99 rows=121395 width=8
)
Filter: ((name)::text = 'ismaster'::text)
(6 rows)
什麼建議嗎?
請問您可以使用psql連接到您的數據庫,然後發出您的查詢,之前解釋(「解釋SELECT userid,...」),然後將輸出添加到您的問題? – 2010-04-29 02:55:45
「優化」在標題中拼寫錯誤。 – bentsai 2010-05-13 18:07:49