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