В плане EXPLAIN для запроса по пользователю вы видите Index Scan using orders_user_id_idx on orders. Какой вывод наиболее корректен?

AПланировщик будет искать строки по ключу в индексе, не читая всю таблицу orders подряд.
BIndex Scan гарантирует, что запрос всегда будет самым быстрым возможным.
CIndex Scan означает, что результат уже отсортирован по любому столбцу.
DЭто означает, что база создала временную таблицу и читает её.
Правильный ответ. Index Scan использует индекс, чтобы быстрее найти подходящие строки.

Разбор

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

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

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