Re: Can Postgres use an INDEX over an OR?

From: Віталій Тимчишин <tivv00(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Chris <dmagick(at)gmail(dot)com>, Robert James <srobertjames(at)gmail(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Can Postgres use an INDEX over an OR?
Date: 2009-07-27 14:33:32
Message-ID: 331e40660907270733g4faee764oe1666d2190684c39@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

27 липня 2009 р. 17:18 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> написав:

> =?KOI8-U?B?96bUwcymyiD0yc3eydvJzg==?= <tivv00(at)gmail(dot)com> writes:
> > Actually what I am talking about is to make OR with UNION (or UNION-like
> > because it's a little different depending on input rows uniqueness) as an
> > option. All of OR parts can use/not use different strategies (including
> > multiple different idexes or hash joins).
>
> AFAICS you're proposing re-inventing the old implementation of OR'd
> indexscans. We took that out when we added bitmap scans because it
> didn't have any performance advantage over BitmapOr.
>

It's not tied to indexscans at all. Different parts can do (as in UNION)
totally different strategy - e.g. perform two hash joins or perform merge
join for one part and nested loop for another or ...

As of performance - see above in this thread. UNION now often provides much
better performance when different parts of OR expression involve different
additional tables.

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Matthew Wakeling 2009-07-27 14:43:26 Re: select query performance question
Previous Message Pavel Stehule 2009-07-27 14:22:08 Re: select query performance question