Search Postgresql Archives

RES: Does postgresql 9.0.4 use index on PREFIX%SUFFIX queries?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Mensagem original-----
> De: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-
> owner@xxxxxxxxxxxxxx] Em nome de Marti Raudsepp
> Enviada em: segunda-feira, 26 de setembro de 2011 17:42
> Para: Edson Carlos Ericksson Richter
> Cc: pgsql-general@xxxxxxxxxxxxxx
> Assunto: Re:  Does postgresql 9.0.4 use index on PREFIX%SUFFIX
> queries?
> 
> On Mon, Sep 26, 2011 at 15:16, Edson Carlos Ericksson Richter
> <richter@xxxxxxxxxxxxxx> wrote:
> > select * from notafiscal where numeroctc like ‘POA%34345’;
> >
> > Prefix is normally 3 characters, suffix varyies.
> >
> > Is Postgresql 9.0.4 able to use an BTREE index on notafiscal.numeroctc
> to execute this query?
> 
> As mentioned by other posters, you should use a btree index with
> text_pattern_ops opclass to speed up this query.
> 
> For queries like these, it's often faster to match the text in *reverse*.
> You can create two indexes like this:
> 
> create index on foobar (txt text_pattern_ops); create index on foobar
> (reverse(txt) text_pattern_ops);
> 
> And then write your queries like this:
> SELECT * FROM foobar
> WHERE txt like 'POA%34345'
>   AND reverse(txt) like reverse('POA%34345');

Just perfect! It not only works, but time dropped from 5s to 94ms.

Regards,

Edson.

> 
> PostgreSQL will automatically choose one or both indexes for executing
> this query.
> 
> Regards,
> Marti
> 
> --
> Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make
> changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general

<<attachment: smime.p7s>>


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux