По словам Крейга Рингера :
Хотя обычно хорошей идеей является создание индекса для (или включая) столбцов внешнего ключа ссылочной стороны, это не обязательно. Каждый добавляемый вами индекс немного замедляет работу DML, поэтому вы платите за производительность за каждый
INSERT,UPDATEилиDELETE. Если индекс используется редко, он может не иметь смысла.
Как вы определяете, превосходит ли выгода от добавления индекса его стоимость?
Вы профилируете модульные тесты до / после добавления индекса и проверяете общий прирост производительности? Или есть лучший способ?
pg_stat_user_indexesпоможет вам в этом, показывая информацию об использовании индекса. Чтобы оценить затраты на обслуживание, вы можете посмотреть на активность записи в таблицу,pg_stat_user_tablesно из-за HOT не все обновления обязательно должны будут касаться индекса, поэтому вы можете немного переоценить.