Re: Automatic optimization of IN clauses via INNER JOIN - Mailing list pgsql-performance

From Thomas Hamilton
Subject Re: Automatic optimization of IN clauses via INNER JOIN
Date
Msg-id 42380.53932.qm@web45816.mail.sp1.yahoo.com
Whole thread Raw
In response to Re: Automatic optimization of IN clauses via INNER JOIN  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Automatic optimization of IN clauses via INNER JOIN  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-performance
Yes, I see the one note that running Analyze can improve the performance.

But in our testing under the same optimization and conditions INNER JOIN is significantly outperforming IN.



----- Original Message ----
From: Tom Lane tgl@sss.pgh.pa.us

Thomas Hamilton <thomashamilton76@yahoo.com> writes:
> Apparently the latest version of MySQL has solved this problem:
http://www.xaprb.com/blog/2006/06/28/why-large-in-clauses-are-problematic/
> But I am running PostgreSQL v8.3 and am observing generally that SELECT ... WHERE ... IN (a, b, c, ...) is much
slowerthan SELECT ... INNER JOIN (SELECT a UNION ALL SELECT b UNION ALL SELECT c ...) 

> Why doesn't the optimizer automatically transform IN clauses to INNER JOINs in this fashion?

Did you read all the comments on that three-year-old article?

            regards, tom lane





pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: Automatic optimization of IN clauses via INNER JOIN
Next
From: Tom Lane
Date:
Subject: Re: Automatic optimization of IN clauses via INNER JOIN