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,UPDATEoDELETE. 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_indexesti 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_tablesma a causa di CALDO, non tutti gli aggiornamenti dovranno necessariamente toccare l'indice, quindi è possibile sopravvalutare un po '.