За словами Крейга Рінгера :
Хоча, як правило, добре створити індекс на (або включати) стовпці сторонніх ключів на стороні референції, це не потрібно. Кожен доданий вами індекс трохи уповільнює операції DML, тому ви платите за ефективність кожного
INSERT
,UPDATE
абоDELETE
. Якщо індекс використовується рідко, можливо, його не варто мати.
Як визначити, чи перевага додавання індексу перевищує його вартість?
Чи проводите випробування блоку до / після додавання індексу та перевіряєте на загальне підвищення продуктивності? Або є кращий спосіб?
pg_stat_user_indexes
допомагає вам в цьому, показуючи інформацію про використання індексу. Щоб оцінити витрати на обслуговування, ви можете ознайомитись із активністю запису вашої таблиці,pg_stat_user_tables
але через HOT, не всі оновлення обов'язково повинні торкатися індексу, щоб ви могли трохи завищити.