Re: Optimising "in" queries

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Stephen Davies <scldad(at)sdc(dot)com(dot)au>
Cc: Michael Glaesemann <grzm(at)seespotcode(dot)net>, Russell Smith <mr-russ(at)pws(dot)com(dot)au>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Optimising "in" queries
Date: 2007-08-23 19:46:42
Message-ID: 20070823194642.GD31461@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Stephen Davies wrote:
> Interesting semantics. I have never seen the IN syntax referred to as
> "array processing" before.
>
> I have always thought of array processing as the thing that vector
> processors such as Cray and ETA do/did.
>
> While superficially equivalent, I have always believed that IN (a,b,c)
> executed faster than =a or =b or =c. Am I wrong for PostgreSQL?

Older versions of Postgres translated IN (a, b, c) into an OR'ed list of
equalities. Nowadays it is treated as an array; I think it's translated
to = ANY ({a,b,c}), as you can see in the message you posted at the
start of this thread.

I don't think you showed us the EXPLAIN ANALYZE results that Scott
requested.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Steven Flatt 2007-08-23 22:25:25 Re: When/if to Reindex
Previous Message Tom Lane 2007-08-23 18:56:19 Re: long-running query - needs tuning