Re: Can Postgres use an INDEX over an OR?

From: Robert James <srobertjames(at)gmail(dot)com>
To: Chris <dmagick(at)gmail(dot)com>
Cc: Віталій Тимчишин <tivv00(at)gmail(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Can Postgres use an INDEX over an OR?
Date: 2009-07-20 13:25:48
Message-ID: e09785e00907200625i45a7cb19l334d66493a0ed188@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Query is:
select * from dict
where
word in (select substr('moon', 0, generate_series(3,length('moon')))) --
this is my X above
OR word like 'moon%' -- this is my Y above

dict is indexed on word
2009/7/20 Chris <dmagick(at)gmail(dot)com>

> 2009/7/20 Robert James <srobertjames(at)gmail(dot)com <mailto:
> srobertjames(at)gmail(dot)com>>
>
>
> Hi. I notice that when I do a WHERE x, Postgres uses an index, and
> when I do WHERE y, it does so as well, but when I do WHERE x OR y,
> it doesn't. Why is this so?
>
> What Robert didn't post was his query, see
>
> http://archives.postgresql.org/pgsql-general/2009-07/msg00767.php
>
> which makes it a lot harder to 'optimize' since they aren't straight
> forward conditions.
>

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Craig James 2009-07-20 14:29:13 Used computers?
Previous Message Robert James 2009-07-20 13:23:46 Re: Fastest char datatype