Вы видите Index Scan в EXPLAIN и делаете вывод «это точно быстро». Насколько это корректно?

AНекорректно: EXPLAIN показывает оценки планировщика, и при больших выборках Seq Scan бывает быстрее Index Scan
BКорректно: Index Scan опережает Seq Scan при любом объёме выбираемых строк и текущей статистики таблиц
CКорректно при условии, что cost плана меньше, чем у Seq Scan: тогда фактическое время заведомо меньше
DНекорректно лишь для запросов без WHERE, в остальных случаях вывод о скорости делается прямо по виду оператора
Правильный ответ. EXPLAIN без ANALYZE показывает оценки планировщика, а Index Scan не всегда быстрее Seq Scan.

Разбор

Индексы помогают выборочным запросам, но при больших выборках последовательное чтение часто оказывается быстрее. EXPLAIN без ANALYZE не измеряет фактическое время — это модельная оценка стоимости. Поэтому план — это гипотеза о работе запроса, которую нужно проверять на реальных данных, особенно для критичных дашбордов.

Проверь себя · 1/3разбор после ответа
В EXPLAIN вашего отчёта видно, что выполняется Sort по created_at на очень большом наборе строк. Какое действие чаще всего помогает уменьшить работу сортировки?
Тренировать SQL в Telegram

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