EXPLAIN / EXPLAIN ANALYZE
EXPLAIN показывает план выполнения запроса. EXPLAIN ANALYZE выполняет запрос и показывает реальное время.
EXPLAIN [ANALYZE] [BUFFERS] SELECT ...; EXPLAIN (FORMAT JSON) SELECT ...;
Объяснение
Пример
-- Безопасный EXPLAIN ANALYZE для UPDATE BEGIN; EXPLAIN ANALYZE UPDATE orders SET status = 'expired' WHERE created_at < '2023-01-01'; ROLLBACK;
Связанные термины
Анекдоты по теме
— Почему HASH JOIN быстрее NESTED LOOP при больших таблицах? — NESTED LOOP: для каждой строки левой таблицы ищет совпадение в правой. O(n*m). — HASH JOIN: строит хэш-таблицу из меньшей таблицы, потом сканирует большую. O(n+m). — Но при маленьких таблицах? — NESTED LOOP эффективнее из-за меньших накладных расходов.
— Зачем учить SQL, если есть ChatGPT? — Чтобы проверить, правильный ли запрос написал ChatGPT. — Логично. — И чтобы понять, почему он работает не так, как ты ожидал.
Подзапрос говорит JOIN: — Я тоже могу соединять таблицы! JOIN: — Но я делаю это один раз. Подзапрос: — Зато я более читаем! OPTIMIZER: — На самом деле я часто превращаю подзапросы в JOIN сам.