~/VibeHandbook
PDF grátis

Capítulo 14 · 05

Indexação

Um índice é como o índice remissivo no final de um livro: ele deixa o banco de dados pular direto para as linhas correspondentes em vez de varrer todas elas. Sem índices, as consultas ficam mais lentas conforme os dados crescem — tudo bem com 100 linhas, doloroso com 1.000.000.

Sem um índice, o banco de dados checa cada linha em ordem; com um índice, ele pula direto para o resultado, da mesma forma que o índice de um livro te manda para a página certa em vez de te fazer ler do início ao fim:

  SEM ÍNDICE  (Seq Scan)             COM ÍNDICE  (Index Scan)
  lê CADA linha, uma por uma        pula direto para os resultados
  ┌─────────────────────┐          ┌─────────────┐
  │ linha 1   ✗         │          │   ÍNDICE    │
  │ linha 2   ✗         │          │ author_id   │
  │ linha 3   ✓  match   │  ◀──────┐ │   ──┬──     │
  │ linha 4   ✗         │         │ └─────┼───────┘
  │ ...     (1.000.000) │         │       ▼
  │ linha N   ✓  match   │         └──▶ linhas 3, 998   ✓
  └─────────────────────┘          alguns saltos, não um milhão

A orientação prática:

  • Indexe colunas que você frequentemente usa para filtrar ou fazer join (ex.: author_id, email).
  • Chaves primárias são indexadas automaticamente.
  • Não indexe tudo — cada índice acelera leituras, mas desacelera escritas e usa espaço.
  • Adicione índices quando você perceber uma consulta lenta, não preventivamente para toda coluna.

A maneira honesta de descobrir se um índice ajuda é perguntar ao banco de dados, não adivinhar. Todo motor tem EXPLAIN (no Postgres, EXPLAIN ANALYZE), que mostra o plano que ele vai usar:

EXPLAIN ANALYZE
SELECT * FROM posts WHERE author_id = '...';

Se a saída disser Seq Scan em uma tabela grande, o banco de dados está lendo cada linha — um sinal de que um índice ajudaria. Depois de adicionar um, deveria mudar para um Index Scan. Esta é uma ótima tarefa para delegar à IA: cole a consulta lenta e a saída do EXPLAIN, e pergunte qual índice adicionar e por quê. Você mantém o controle entendendo a resposta, não memorizando teoria de índices.

Quer offline?

Baixe o livro inteiro em PDF ou EPUB — grátis.