Вопрос проверяет понимание компромиссов между скоростью чтения и скоростью записи при использовании индексов.
Индексы ускоряют чтение, но замедляют записи. При INSERT и UPDATE база должна обновлять не только таблицу, но и все связанные индексы. Чем больше индексов — тем выше накладные расходы. Это особенно заметно при массовых операциях записи.
Издержки индексов при записи — это дополнительная работа базы данных по поддержанию актуальности индексных структур.
Перед перечислением важно зафиксировать идею:
каждый индекс — это дополнительная структура, которую нужно синхронизировать.
INSERTЗапись строки в таблицу
Добавление ключа в каждый индекс
Возможное перераспределение страниц индекса
UPDATEОбновление строки
Если меняется индексируемое поле:
Удаление старого значения из индекса
Вставка нового значения
Рост нагрузки на журнал транзакций
Массовые вставки замедляются
Частые обновления “горячих” полей дорогие
Избыточные индексы вредят производительности
Индексы — это плата за быстрое чтение. В системах с интенсивной записью их количество должно быть минимально и обосновано