Por favor, pare com suas respostas em cima das outras. Responda abaixo
ou comentando como outros colegas fazem.
Valeu pela explicação, bem nos detalhes mesmo. Só que agora fiquei
indeciso depois da resposta do Cícero. Se eu fizer o indice com os três
campos index(A, B, C), também funcionaria? Ele seria usados em consultas
A and B, A and C, C and B, somente C e somente B? As regras seriam as
mesmas que você explicou?
Estratégia de índices vai muito além disso.
Se você tem consultas que vão utilizar apenas um dos campos, entre
outras consultas, às vezes vale a pena fazer índices separados, pois
você terá índices menores para consultas específicas.
Atravessar um índice para leitura custa caro: por se tratar de acesso
randômico de disco, um índice é viável em determinadas situações.
Faça você a análise: liste suas consultas. Crie os índices. Faça EXPLAIN
ANALYZE das consultas sobre dados reais. Assim, você terá certeza de
como seus índices serão utilizados, no seu caso específico.
Às vezes, a estratégia de índices precisa de ajustes após ter sido
colocada em produção.
No seu caso, por exemplo, pode ser interessante até mesmo ter um índice
cobrindo as três colunas, e mais um índice cobrindo uma coluna sozinha
(sim, uma mesma coluna indexada em dois índices diferentes), e isso pode
ser interessante para determinadas consultas.
Os cuidados com índices em excesso são simples de entender: mais
índices, maior carga na hora de escrever dados no banco e maior espaço
em disco ocupado.
[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral