Sobes.tech
Junior — Middle

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);