Можно ли применить индекс для ускорения выполнения запроса

«Можно ли применить индекс для ускорения выполнения запроса» — вопрос из категории Базы данных, который задают на 38% собеседований Продуктовый Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, индексы значительно ускоряют выполнение запросов, особенно для операций поиска (WHERE), сортировки (ORDER BY) и соединения (JOIN). Они работают как оглавление в книге, позволяя СУБД быстро находить нужные данные без полного сканирования таблицы.

Пример:

-- Создание индекса для столбца `user_id`
CREATE INDEX idx_user_id ON users(user_id);

-- Запрос будет использовать индекс
SELECT * FROM users WHERE user_id = 42;

Ограничения:

  • Индексы замедляют вставку и обновление данных (т.к. их нужно перестраивать).
  • Неэффективны для столбцов с низкой селективностью (например, gender).
  • Занимают дополнительное место на диске.

Оптимально добавлять индексы на часто используемые в фильтрах столбцы.