Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: explain, analyze

Как можно получить план выполнения запроса в PostgreSQL или MySQL?

Вопрос проверяет практическое знание инструментов анализа SQL-запросов в популярных СУБД.

Короткий ответ

Для получения плана используется команда EXPLAIN.
Она показывает предполагаемый план выполнения.
EXPLAIN ANALYZE дополнительно выполняет запрос и показывает реальные данные.
В MySQL используется аналогичная команда EXPLAIN.
Это стандартный инструмент анализа SQL.

Длинный ответ

Практически каждая СУБД предоставляет средства для анализа плана выполнения.

PostgreSQL

Основные команды:

  1. EXPLAIN — показывает план без выполнения запроса.

  2. EXPLAIN ANALYZE — выполняет запрос и показывает фактическое время и количество строк.

Пример:

EXPLAIN ANALYZE
SELECT * FROM orders WHERE user_id = 10;

Что можно увидеть:

  1. Типы сканирования (Seq Scan, Index Scan).

  2. Фактическое и ожидаемое количество строк.

  3. Реальное время выполнения.

MySQL

В MySQL используется:

EXPLAIN
SELECT * FROM orders WHERE user_id = 10;

Также доступны:

  1. EXPLAIN ANALYZE (в новых версиях).

  2. Дополнительные режимы форматирования.

Зачем использовать ANALYZE

ANALYZE полезен, когда:

  1. План кажется оптимальным, но запрос медленный.

  2. Нужно сравнить оценки оптимизатора с реальностью.

Краткий вывод

EXPLAIN и EXPLAIN ANALYZE — основной способ получить и проанализировать план выполнения запроса в PostgreSQL и MySQL.

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • Postgres

    Postgres

Ключевые слова

#explain

#analyze

Подпишись на Java Developer в телеграм