Встречается на собеседованиях • сегодня

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

Составные (композитные) индексы ускоряют запросы, которые фильтруют или сортируют по нескольким полям одновременно. Они эффективны, когда:

  1. Запрос использует префикс индекса – например, индекс (a, b, c) ускорит фильтрацию по a, (a, b) или (a, b, c), но не по b или c отдельно.
  2. Покрывающие индексы – если индекс содержит все поля запроса, БД может выполнить запрос, не обращаясь к таблице (index-only scan).

Пример для PostgreSQL:

sql
-- Создание составного индекса
CREATE INDEX idx_user_name_age ON users (last_name, age);

-- Запрос, использующий префикс индекса (last_name)
SELECT * FROM users WHERE last_name = 'Smith';

-- Покрывающий индекс (данные берутся только из индекса)
SELECT last_name, age FROM users WHERE last_name = 'Smith' AND age > 30;

Нюансы:

  • Порядок столбцов в индексе критичен. Первым должно идти поле с высокой селективностью.
  • Избыточные индексы (например, отдельный на last_name) могут быть не нужны, если есть составной.
  • Обновление индекса замедляет INSERT/UPDATE/DELETE.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы