Secondo Craig Ringer :
Sebbene di solito sia una buona idea creare un indice su (o includere) le colonne di chiave esterna sul lato di riferimento, non è necessario. Ogni indice che aggiungi rallenta leggermente le operazioni DML, quindi paghi un costo di rendimento su ogni
INSERT
,UPDATE
oDELETE
. Se l'indice viene utilizzato raramente, potrebbe non valerne la pena.
Come si determina se il vantaggio di aggiungere un indice supera il suo costo?
Profili i test unitari prima / dopo l'aggiunta di un indice e verifichi un aumento complessivo delle prestazioni? O c'è un modo migliore?
pg_stat_user_indexes
ti guida in questo, mostrando informazioni sull'utilizzo dell'indice. Per stimare i costi di manutenzione è possibile esaminare l'attività di scrittura della tabella,pg_stat_user_tables
ma a causa di CALDO, non tutti gli aggiornamenti dovranno necessariamente toccare l'indice, quindi è possibile sopravvalutare un po '.