Em 24 de outubro de 2012 20:36, Danilo Silva
<danilo.dsg.go...@gmail.com> escreveu:
> Pessoal,
>
> Eu sei que não devemos criar índices desnecessariamente, mas eu tenho uma
> tela de consulta onde é possível efetuar a consulta por qualquer campo, ou
> seja, os campos não são obrigatórios, pelo menos um deve ser preenchido.
>
> Se eu criar, por exemplo um índice para cada campo, quais problemas poderia
> ter? Ou teria apenas a questão de espaço em disco?
>
> Como o PostgreSQL trataria a consulta com vários índices criados?

Criar muitos índices pode causar um atraso considerável na atualização
da tabela (INSERT / UPDATE / DELETE) à medida que os índices precisam
incluir as novas chaves.

O menor dos seus problemas será na consulta. O otimizador irá
considerar apenas os índices referenciados pelas colunas que você
informou nas cláusulas WHERE e/ou ORDER BY e irá escolher o melhor
baseado nas estatísticas existentes.

Eu diria para você forçar o uso de uma ou duas colunas na consulta,
preferencialmente atributos cronológicos como um campo de data e
outros que possam ter algum agrupamento lógico (como departamento,
produto, etc). Assim você pode criar os índices para estas colunas
inicialmente e depois avaliar o resultado.

-- 
TIAGO J. ADAMI
http://www.adamiworks.com
@tiadami
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to