В плане EXPLAIN для запроса по пользователю вы видите проход по индексу orders_user_id_idx для таблицы заказов. Какой вывод наиболее корректен?

AПланировщик использует индекс, чтобы найти подходящие строки по ключу, не читая всю таблицу заказов целиком
BТакой план гарантирует, что запрос всегда выполнится максимально быстро среди всех возможных способов исполнения
CТакой план означает, что результат уже отсортирован по любому столбцу таблицы заказов без дополнительных операций
DТакой план означает, что база создала временную таблицу заказов и теперь читает её последовательно при каждом запросе
Правильный ответ. Проход по индексу позволяет найти подходящие строки быстрее, чем последовательное сканирование всей таблицы.

Разбор

При проходе по индексу база сначала находит подходящие записи в индексе (например, по идентификатору пользователя), а затем читает соответствующие строки таблицы. Это особенно выгодно, когда условие в WHERE отбирает малую долю строк. Реальная скорость зависит от объёма возвращаемых данных и количества дисковых чтений, поэтому проход по индексу не является автоматической гарантией максимальной производительности.

Проверь себя · 1/3разбор после ответа
Есть индекс по orders.created_at, но EXPLAIN для фильтра WHERE date(created_at) = current_date показывает Seq Scan. Почему это часто происходит?
Тренировать SQL в Telegram

Ещё вопросы по теме «EXPLAIN и оптимизация»