Í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_emem listas ordenadas por data. - Chaves estrangeiras: muitos bancos não criam índice automaticamente para elas.
- Combinações: filtro por
empresa_idestatusjuntos pede um índice composto, na ordem certa.
Como descobrir
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
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.
Continue lendo
Tudo sobre Backend & APIs- Ler artigo
Backend & APIs3 min
Paginação por cursor vs. offset: quando a lista começa a ficar lenta
A página 1 da lista carrega rápido, a página 500 demora segundos e às vezes repete itens. Entenda a diferença entre paginação por offset e por cursor.
- Ler artigo
Backend & APIs3 min
Consultas N+1: o vilão silencioso da API lenta
A tela de pedidos faz uma consulta para a lista e mais uma para cada pedido. Com 200 itens, são 201 idas ao banco. Veja como identificar e eliminar o problema N+1.
- Ler artigo
Backend & APIs3 min
Migrações de banco sem derrubar o sistema
Renomear uma coluna parece trivial — até derrubar o sistema em produção. Veja como mudar o banco de dados sem tirar o sistema do ar.