Um índice PostgreSQL ajuda quando reduz o trabalho de uma consulta importante mais do que aumenta o custo de escrita e manutenção da tabela.
Meça a consulta antes de criar o índice
Use EXPLAIN (ANALYZE, BUFFERS) em uma amostra representativa. O plano mostra se a consulta lê páginas demais, filtra tarde ou já está usando um índice adequado.
Indexe o padrão de acesso
Colunas usadas em filtros, joins e ordenações podem se beneficiar, mas a ordem das colunas compostas precisa acompanhar o padrão real da consulta. Cardinalidade baixa exige cuidado extra.
Considere o custo da escrita
Cada INSERT, UPDATE ou DELETE pode precisar atualizar índices. Em tabelas com muita escrita, vários índices parecidos podem transformar uma otimização pontual em uma fila de manutenção.
Remova o que não prova valor
Acompanhe uso e tamanho dos índices, compare planos antes e depois e registre a razão da criação. Um índice sem consulta correspondente é um candidato a revisão, não uma relíquia.
Próximo passo
Escolha uma parte pequena do sistema, registre o comportamento atual e faça uma mudança que possa ser observada e revertida. O objetivo não é aplicar uma receita inteira de uma vez, mas transformar uma hipótese em um teste que ensine algo sobre o projeto real.