EXPLAIN
Показывает план выполнения запроса без реального выполнения — какие индексы и типы соединений выберет планировщик.
EXPLAIN SELECT ...;
EXPLAIN (FORMAT JSON) SELECT ...;Объяснение
Пример
EXPLAIN SELECT * FROM orders WHERE user_id = 5;Связанные термины
Анекдоты по теме
— Чем коррелированный подзапрос отличается от обычного? — Обычный выполняется один раз. Коррелированный — для каждой строки внешнего запроса. — Это плохо? — Зависит от размера таблицы. При миллионе строк — миллион подзапросов.
— Можно ли использовать WHERE на результат оконной функции? — Нет. — Почему?! — Оконные функции вычисляются ПОСЛЕ WHERE. В WHERE их ещё нет. — Как тогда фильтровать? — Обернуть в подзапрос или CTE, потом фильтровать внешним WHERE.
MATERIALIZED VIEW обновляется раз в час. Пользователь в 11:59: почему данные устаревшие?! DBA: ждите одну минуту. Пользователь в 12:01: данные обновились! DBA: REFRESH MATERIALIZED VIEW не такой страшный.