> ILIKE %% ignora índices.
> ILIKE texto% pode utilizar índices.
> 
> Pode ser utilizado o pg_trgm(pesquisa por similaridade)[1] ou o
> tsearch2(busca textual)[2], mas depende do negócio da aplicação.

Ou você pode fazer um índice GIN ou GIST utilizando o método de acesso
pg_trgm :
CREATE INDEX ON tabela USING GIN(coluna_texto gin_trgm_ops);
CREATE INDEX ON tabela USING GIST(coluna_texto gist_trgm_ops);

E o like vai usar esses índices, mesmo com %texto%.
O desempenho é diferente de índices btree, sugiro ao colega entender o
que é GIN e GIST, mas é muito melhor que seqscan en grandes tabelas.

Concordo que tsearch bem utilisado é a melhor opção.

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a