[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