Вопрос проверяет понимание внутренней работы индексов и компромиссов производительности.
Индексы ускоряют чтение, но замедляют запись. При INSERT и UPDATE базе нужно обновлять не только таблицу, но и все связанные индексы. Чем больше индексов, тем выше накладные расходы. Это особенно заметно при массовых операциях записи.
Индекс — это дополнительная структура данных, ускоряющая поиск строк по заданному условию.
Важно понимать, что индекс — это не бесплатная оптимизация.
Дополнительные операции записи
вставка строки в таблицу
обновление каждой индексной структуры
Обновления при UPDATE
изменение индексируемого поля
перестроение индексных записей
Рост нагрузки на диск
больше операций ввода-вывода
увеличение размера данных
Блокировки
индексы тоже участвуют в блокировках
возрастает contention
Таблица с 6 индексами требует:
1 запись в таблицу
6 обновлений индексов
добавлять индексы только под реальные запросы
избегать избыточных индексов
анализировать планы запросов
Индексы — это компромисс между скоростью чтения и скоростью записи, который нужно осознанно контролировать.