[firebase-br] Dúvida Sobre criação Índices.
Eduardo Bahiense
eduardo em icontroller.com.br
Sáb Jun 25 10:25:50 -03 2011
Oi Deiego
O texto abaixo é uma resposta que dei há algum tempo atrás em outra
thread. No caso específico da sua pergunta, o que posso dizer é que,
pessoalmente, considero 6 a quantidade onde começo a me preocupar se a
tabela está com excesso de índices.
____________________________
Índices primários te garantirão a unicidade dos registros em suas
tabelas e isso é necessário para as funções de atualização, exclusões,
bem como para os relacionamentos com outras tabelas.
Você precisará de índices secundários, basicamente, para melhorar a
performance da recuperação dos dados e também nas operações acima que
não estiverem cobertas pela própria chave primária.
Assim, em uma tabela de pessoas, normalmente a PK é um número, mas,
frequentemente, você busca pessoas por nome, dessa forma, um índice em
nome te auxiliará bastante.
Aí você poderia pensar: Então colocarei índices em todos os campos para
otimizar performance, e cai do cavalo. Índices são arquivos secundários
que precisam manter consistência com a tabela. A cada alteração da
tabela, os índices precisam ser atualizados, causando aumento de
processamento, consumo de memória e acesso a disco, degradando a
performance.
Outra coisa, índices com muitos valores repetidos, por exemplo, indexar
pelo campo cidade, mais atrapalham do que ajudam. Pense em um livro,
pois a correlação é bem essa: Se quero um assunto específico, é mais
fácil ir no índice e ver em que página está a informação e depois ir
direto na página, do que folhear o livro inteiro cada vez. Agora, se vou
no índice e o assunto que eu quero, consta que existe em 80% das
páginas, melhor ir folheando página por página, que é mais rápido.
Bem, vai aí uma visão geral para iniciantes. O assunto é um pouquinho,
não muito, mais complexo que isso.
Abraço
Eduardo
Mais detalhes sobre a lista de discussão lista