Quais são as diferenças entre os diferentes tipos de índices em SQL e como eles afetam a execução das consultas?
sobes.tech IA
Resposta da IA
Existem diferentes tipos de índices em SQL que afetam o desempenho das consultas e as formas de armazenar dados:
-
Índice B-Tree — o tipo mais comum. Adequado para buscas rápidas, ordenação e consultas por intervalo. O índice armazena dados numa árvore balanceada, garantindo um tempo de acesso logarítmico.
-
Índice Hash — utilizado para buscas rápidas por correspondência exata (por exemplo,
WHERE coluna = valor). Não suporta consultas por intervalo nem ordenação. -
Índice Bitmap — eficiente para colunas com baixa cardinalidade (poucos valores únicos). Utiliza mapas de bits para um filtro rápido.
-
Índice Clustered (cluster) — determina a ordem física das linhas na tabela. Normalmente, uma tabela pode ter apenas um índice cluster. Acelera as consultas pela chave do índice cluster.
-
Índice Non-clustered (não cluster) — estrutura separada que contém as chaves e ponteiros para as linhas da tabela.
Influência na execução de consultas:
- Os índices aceleram operações SELECT, especialmente com condições de busca e ordenação.
- Podem desacelerar operações INSERT, UPDATE, DELETE devido à necessidade de atualizar os índices.
- A escolha do tipo de índice depende da natureza das consultas e da estrutura dos dados.
Exemplo de criação de um índice B-Tree no SQL Server:
CREATE INDEX idx_customer_name ON Customers (LastName, FirstName);