В выводе EXPLAIN вы видите оценку cost=0.00..431.00. Какой вывод аналитик может сделать безопасно?

AТочное время выполнения запроса в миллисекундах на текущей нагрузке базы
BТочное количество строк, которое запрос вернёт после фактического выполнения
CОтносительная оценка планировщика для сравнения альтернативных планов запроса
DОбъём оперативной памяти в мегабайтах, который запрос выделит на стадии исполнения
Правильный ответ. cost в EXPLAIN — это оценка планировщика для сравнения планов, а не секунды или строки.

Разбор

В Postgres-подобных СУБД cost используется планировщиком, чтобы выбрать один план из нескольких. Значения помогают прикинуть «дороже/дешевле» на одной и той же базе при схожих условиях. Но переводить cost в секунды и обещать точное время выполнения по EXPLAIN нельзя. Это не количество строк (для этого есть rows) и не объём памяти — единицы условные, привязаны к стоимости последовательного чтения страницы.

Проверь себя · 1/3разбор после ответа
Есть запрос SELECT * FROM events WHERE user_id = 42 ORDER BY created_at DESC LIMIT 50. Какой вариант индекса чаще всего помогает, чтобы избежать Sort и быстро получить первые строки?
Тренировать SQL в Telegram

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