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.
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 |