Вопрос проверяет понимание того, как индексы влияют на производительность вставки и чтения данных.
Если загружается большой объем данных, индекс обычно создают после загрузки, потому что поддержание индекса замедляет вставку. Если данные добавляются постепенно и запросы выполняются сразу, индекс создают заранее. Выбор зависит от сценария использования. При bulk-загрузке создание индекса после вставки обычно быстрее.
Индексы ускоряют чтение, но замедляют запись, потому что их нужно поддерживать при каждом INSERT.
Определение: Индекс — структура данных, ускоряющая поиск строк в таблице за счет дополнительного хранения ключей.
Если индекс отсутствует:
Вставка происходит быстрее
Нет затрат на перестроение индекса
Bulk-операции выполняются быстрее
После загрузки индекс создается один раз.
Индекс стоит создать до загрузки, если:
Данные вставляются постепенно
Таблица сразу используется в запросах
Нет массовой загрузки
При массовой вставке:
база не пересчитывает индекс на каждую строку,
индекс строится одним проходом.
Это особенно важно при миллионах записей.
Типичный сценарий миграции:
Создать таблицу
Загрузить данные
Создать индекс
Запустить ANALYZE
При bulk-загрузке индекс чаще создают после вставки данных, а при обычной работе — заранее, чтобы ускорить запросы.