Re: Unusual slowdown using subselects
Stephan Szabo <sszabo@megazone23.bigpanda.com>
From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
To: John Aughey <jha@washucsc.org>
Cc: pgsql-general@postgresql.org
Date: 2001-05-16T22:09:08Z
Lists: pgsql-general
> calendar=# explain select * from schedule where schedule.owner_id in > (select group_id from groups where user_id=101); > NOTICE: QUERY PLAN: > Seq Scan on schedule (cost=0.00..2039895.00 rows=1000000 width=40) > SubPlan > -> Materialize (cost=2.02..2.02 rows=1 width=4) > -> Index Scan using groups_id_index on groups (cost=0.00..2.02 > rows=1 width=4) > > You'll see in this one, where the first example did a index scan, this one > with a very similar query does a seq scan. The two queries should be > nearly identical, but this one runs very slowly. > > Can anyone explain why this happens and/or how I can do a sub-select like > this and get fast results? Try using EXISTS rather than IN (see the FAQ for more information).