From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Thomas Samson <koollman(at)gmail(dot)com> |
Cc: | Ulrich Habel <espero7757(at)gmx(dot)net>, pgsql-performance(at)postgresql(dot)org |
Subject: | Re: query planner: automatic rescribe of LIKE to BETWEEN ? |
Date: | 2006-08-22 18:49:57 |
Message-ID: | 20060822184957.GE25475@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Thomas Samson wrote:
> On 8/22/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
> >Ulrich Habel wrote:
> >> Hello all,
> >> had an idea of optimizing a query that may work generally.
> >>
> >> In case a 'column' is indexed, following two alterations could be done
> >> I think:
> >>
> >> A)
> >>
> >> select ... where column ~ '^Foo' --> Seq Scan
> >
> >This is not true. You can make this query use an index if you create it
> >with opclass varchar_pattern_ops or text_pattern_ops, as appropiate.
> >
> >Thus you don't need any hack here.
> >
>
> And in the case of more general expression, like:
> select ... where column ~ 'something';
>
> Is there a way to optimise this ? (in the case where 'something' is not
> a word, but a part of a word)
Not sure. I'd try tsearch2 or pg_trgm (or pg_tgrm, whatever it's
called). It's trigram indexing.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-08-22 19:19:53 | Re: VACUUM FULL needed sometimes to prevent transaction ID wraparound? |
Previous Message | Thomas Samson | 2006-08-22 18:21:23 | Re: query planner: automatic rescribe of LIKE to BETWEEN ? |