Sêniorperformanceindices

Quando criar índices em SQL

Publicado em 2025-02-10

Pergunta

Quais critérios você usa para decidir criar um índice em uma tabela analítica?

Explicação

Índices aceleram leituras mas degradam escritas. A decisão depende do padrão de query, da cardinalidade da coluna e do volume de mutações. Em analytics, índices em colunas de filtro frequente e em chaves de join costumam ser ganho líquido.

Query SQL

sql
-- Cobertura típica para filtros temporais + join
CREATE INDEX idx_vendas_data_cliente
  ON vendas (data_venda, cliente_id);

Resposta esperada

Plano de execução com Index Scan em vez de Seq Scan nas queries filtradas por data_venda.

Erros comuns

  • Criar índice em coluna de baixíssima cardinalidade (ex.: flag booleana) sem necessidade
  • Não considerar a ordem das colunas no índice composto
  • Esquecer de monitorar bloat e VACUUM em Postgres

Dica de entrevista

Antes de criar índice, rode EXPLAIN ANALYZE e identifique o gargalo real.

Compartilhar: