From: | Josh Berkus <josh(at)agliodbs(dot)com> |
---|---|
To: | Ryan Bradetich <rbradetich(at)uswest(dot)net> |
Cc: | Oleg Lebedev <oleg(dot)lebedev(at)waterford(dot)org>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: slow query |
Date: | 2003-02-23 21:47:58 |
Message-ID: | 200302231347.58960.josh@agliodbs.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Ryan,
> > The above should use an EXISTS clause, not IN, unless you are absolutely
> > sure that the subquery will never return more than 12 rows.
>
> I am assuming you said this because EXISTS is faster for > 12 rows?
> Interesting :)
That's my rule of thumb, *NOT* any kind of relational-calculus-based truth.
Basically, one should only use IN for a subquery when one is *absolutely* sure
that the subquery will only return a handful of records, *and* the subquery
doesn't have to do an complex work like aggregating or custom function
evaluation.
You're safer using EXISTS for all subqueries, really.
--
Josh Berkus
Aglio Database Solutions
San Francisco
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-02-24 02:28:54 | Re: slow query |
Previous Message | Ryan Bradetich | 2003-02-23 21:05:34 | Re: slow query |