Вопрос проверяет понимание того, как индексы влияют на производительность чтения и как принимать решение об их добавлении.
Индексы имеет смысл добавлять, когда запросы часто фильтруют или сортируют данные по определённым колонкам. Они особенно полезны для WHERE, JOIN, ORDER BY. Индексы ускоряют чтение, но не бесплатны. Их добавляют на основании реальных запросов, а не «на всякий случай». Обычно решение принимается после анализа плана выполнения.
Индексы — это один из главных инструментов оптимизации чтения данных, но использовать их нужно осознанно.
Индекс — это вспомогательная структура данных, которая позволяет базе данных быстрее находить строки по заданным колонкам.
Перед перечислением важно понимать: индекс ускоряет поиск, но не саму обработку данных.
Фильтрация в WHERE
частые запросы по одному и тому же полю
поиск по идентификаторам, статусам, датам
JOIN между таблицами
индексы на внешних ключах
ускорение соединения больших таблиц
Сортировка
ORDER BY по индексированному полю
особенно важно для пагинации
Уникальные ограничения
UNIQUE индексы
защита от дубликатов + ускорение поиска
Высокая селективность
когда значение встречается редко
индекс реально отсекает большую часть строк
Маленькие таблицы
Колонки с очень малым числом уникальных значений
Редко используемые фильтры
Индексы стоит добавлять под конкретные запросы, опираясь на план выполнения и реальные нагрузки, а не по умолчанию.