Junior
Quais são os tipos de índices existentes em bancos de dados?
sobes.tech IA
Resposta da IA
Os principais tipos de índices em bases de dados:
-
B-tree (B+tree):
- O tipo mais comum.
- Adequado para uma vasta gama de operações: pesquisa por intervalo, correspondência exata, ordenação.
- Usado por padrão em muitos SGBDs (MySQL, PostgreSQL, Oracle).
-
Índices hash:
- Baseados em tabela de hash.
- Muito rápidos para buscas por correspondência exata (
=). - Não adequado para buscas por intervalo (
BETWEEN,<,>), ordenação (ORDER BY) ou busca por padrão (LIKE).
-
Índices de texto completo:
- Destinados à pesquisa em campos de texto (BLOB, TEXT).
- Permitem procurar palavras ou frases, considerar sinónimos e realizar análise morfológica.
- Exemplos:
MATCH...AGAINSTno MySQL/MariaDB,tsvector/tsqueryno PostgreSQL.
-
Índices espaciais (R-tree):
- Usados para indexar dados geográficos ou espaciais.
- Permitem encontrar objetos numa área ou limites específicos de forma eficiente.
-
Índices bitmap (mapa de bits):
- Usado em alguns SGBDs (por exemplo, Oracle, PostgreSQL).
- Adequado para campos com baixa cardinalidade (poucos valores únicos, por exemplo, género, estado: ativo/inativo).
- Pode ser muito eficiente para consultas complexas com operações
ANDeOR.
-
Índice clusterizado:
- Afeta a ordem física de armazenamento das linhas da tabela.
- Pode haver apenas um índice clusterizado por tabela.
- Frequentemente usado para a chave primária.
-
Índice não clusterizado:
- Não determina a ordem física das linhas.
- Contém ponteiros para a localização física das linhas de dados.
- Uma tabela pode ter vários índices não clusterizados.
-
Índice de cobertura (covering):
- Um índice que contém todas as colunas necessárias para executar uma consulta, incluindo colunas na
SELECT, condições emWHEREeORDER BY. - Permite ao SGBD não precisar acessar os dados da tabela, acelerando a execução da consulta.
- Um índice que contém todas as colunas necessárias para executar uma consulta, incluindo colunas na
-
Índice funcional (por expressão):
- Índice construído sobre o resultado de uma função ou expressão numa ou várias colunas.
- Permite indexar valores calculados.
Ao escolher o tipo de índice, considera-se o tipo de dados, a frequência e a natureza das consultas (busca por valor exato, intervalo, ordenação, busca de texto completo, etc.) e a cardinalidade da coluna.