嗨,试图优化这个查询解决重复的用户问题:,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