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.