Um índice acelera a recuperação de dados. Sem ele, a base de dados examina cada linha para encontrar registos correspondentes. Com um índice, salta diretamente para as linhas relevantes. O índice é uma estrutura de dados separada que mapeia valores para locais. O índice de um livro funciona da mesma forma. Procura um termo e encontra o número da página. Não lê todas as páginas para o encontrar. A base de dados faz a mesma coisa.
Os índices têm um custo. Ocupam espaço. Tornam as inserções, atualizações e eliminações mais lentas, uma vez que o índice também precisa de ser atualizado. Cada gravação torna-se mais custosa. O benefício é a maior velocidade de leitura. Para cargas de trabalho com muitas leituras, os índices são essenciais. Para cargas de trabalho com muitas gravações, o excesso de índices prejudica o desempenho. Escolher quais as colunas a indexar requer a compreensão dos padrões de consulta. As colunas utilizadas nas cláusulas WHERE, condições JOIN e cláusulas ORDER BY são boas candidatas. Colunas com baixa cardinalidade, como indicador booleano, são más candidatas, pois o índice não restringe muito a pesquisa. Os índices compostos abrangem várias colunas e podem servir consultas que filtram por diversos campos. A ordem das colunas num índice composto é importante. A base de dados pode utilizar um índice composto para consultas na coluna inicial, mas não apenas nas colunas finais. O design de índices é um equilíbrio. O objetivo é acelerar as consultas que importam sem tornar as gravações mais lentas do que o necessário.
Tipos de índice
- Árvore B — padrão para a maioria das bases de dados, boa para consultas de intervalo.
- Hash — buscas rápidas de igualdade, sem suporte de intervalos.
- Bitmap — colunas de baixa cardinalidade, consultas analíticas
- Texto integral — pesquisa de texto
- Composto — várias colunas num único índice
Um índice é um atalho. Troca velocidade de escrita e armazenamento por velocidade de leitura. Utilize-o onde as leituras são mais importantes.
Comments (3)
Leave a comment