Em 06-12-2013 17:19, Flavio Henrique Araque Gurgel escreveu:
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
Terei todas essas consultas que relatei (A and B, A and C, C and B,
somente C e somente B)
Baseado do que vc afirmou, qual seria a prática adequada, colocar o
banco em produção sem índices, e cria-los depois de alguns dias baseado
em uma análise de uso?
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral