Pular para o conteúdo

Índices no banco de dados: a otimização mais barata que você ainda não fez

Uma consulta que leva 3 segundos pode levar 3 milissegundos com o índice certo. Veja como saber onde faltam índices — e por que índice demais também atrapalha.

Por Equipe We Codex3 min de leitura

Antes de trocar de servidor, de banco ou de arquitetura, olhe os índices. Em boa parte dos sistemas lentos que avaliamos, a solução mais barata e mais impactante era criar o índice que faltava.

O que é um índice

É uma estrutura que permite ao banco encontrar linhas sem ler a tabela inteira — como o índice remissivo de um livro. Sem ele, buscar pedidos de um cliente numa tabela com milhões de linhas significa percorrer todas.

Onde costumam faltar

  • Colunas de filtro frequente: cliente_id, status, email.
  • Colunas de ordenação: criado_em em listas ordenadas por data.
  • Chaves estrangeiras: muitos bancos não criam índice automaticamente para elas.
  • Combinações: filtro por empresa_id e status juntos pede um índice composto, na ordem certa.

Como descobrir

sql
EXPLAIN ANALYZE SELECT * FROM pedidos WHERE cliente_id = 42 ORDER BY criado_em DESC LIMIT 20;

Se aparecer "Seq Scan" em tabela grande, falta índice. Ferramentas de observabilidade também apontam as consultas mais lentas (Observabilidade para quem não é SRE: métricas, logs e traces).

Índice demais também custa

Cada índice ocupa espaço e deixa inserções e atualizações mais lentas. Crie com base em consultas reais, não "por garantia".

Cuidado ao criar em produção

Criar índice em tabela grande pode travar escritas. Use criação concorrente e trate como uma migração planejada (Migrações de banco sem derrubar o sistema).

Índices também são o que torna a paginação por cursor rápida (Paginação por cursor vs. offset: quando a lista começa a ficar lenta) e complementam a correção de consultas N+1 (Consultas N+1: o vilão silencioso da API lenta).

A We Codex otimiza bancos em sistemas web e Performance WPO. Fale com a gente.

  • Banco de dados
  • Índices
  • PostgreSQL
  • Performance
CompartilharWhatsAppLinkedIn

Resolver de vez, com quem faz isso todo dia

Precisa de uma API ou integração que não caia quando o negócio crescer?

Este artigo mostra o caminho. A implementação sob medida — o detalhe que muda o resultado no seu caso — é o trabalho da We Codex, empresa de engenharia do grupo Wocom.