De acordo com Craig Ringer :
Embora seja geralmente uma boa ideia criar um índice (ou incluindo) nas colunas de chave estrangeira do lado da referência, isso não é necessário. Cada índice de adicionar retarda Operações DML ligeiramente para baixo, de modo que você paga um custo de desempenho em cada
INSERT
,UPDATE
ouDELETE
. Se o índice for raramente usado, pode não valer a pena.
Como você determina se o benefício de adicionar um índice ultrapassa seu custo?
Você analisa os testes de unidade antes / depois de adicionar um índice e verifica se há um ganho geral de desempenho? Ou há uma maneira melhor?
pg_stat_user_indexes
ajuda a guiá-lo com isso, mostrando informações sobre o uso do índice. Para estimar os custos de manutenção, você pode observar a atividade de gravação da tabela,pg_stat_user_tables
mas devido ao HOT, nem todas as atualizações precisam necessariamente tocar no índice, para que você possa superestimar um pouco.