De acuerdo con Craig Ringer :
Si bien generalmente es una buena idea crear un índice en (o incluir) las columnas de clave externa del lado de referencia, no es obligatorio. Cada índice que agrega ralentiza ligeramente las operaciones DML, por lo que paga un costo de rendimiento en cada
INSERT
,UPDATE
oDELETE
. Si el índice se usa raramente, puede que no valga la pena tenerlo.
¿Cómo se determina si el beneficio de agregar un índice supera su costo?
¿Perfila pruebas unitarias antes / después de agregar un índice y verifica una ganancia de rendimiento general? ¿O hay un mejor camino?
pg_stat_user_indexes
ayuda a guiarlo con esto, mostrando información sobre el uso del índice. Para estimar los costos de mantenimiento, puede ver su actividad de escritura en la tabla,pg_stat_user_tables
pero debido a HOT, no todas las actualizaciones necesariamente tendrán que tocar el índice para que pueda sobrestimar un poco.