Пожалуйста, давайте сосредоточимся на теме. Какие метрики плана выполнения PostgreSQL помогают выявить узкие места в запросах?

Сравнивайте estimated и actual rows, время узлов, loops, чтение buffers, отбрасываемые строки и выход сортировок на диск. Это помогает различать ошибку оценок, лишнюю работу и I/O.

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

Что ответить на собеседовании

Сравнивайте estimated и actual rows, время узлов, loops, чтение buffers, отбрасываемые строки и выход сортировок на диск. Это помогает различать ошибку оценок, лишнюю работу и I/O.

Подробный разбор

Ответ с пояснениями

Сравнивайте estimated и actual rows, время узлов, loops, чтение buffers, отбрасываемые строки и выход сортировок на диск. Это помогает различать ошибку оценок, лишнюю работу и I/O.

Используйте EXPLAIN (ANALYZE, BUFFERS) только там, где допустимо реальное выполнение запроса. При loops > 1 время и строки узла обычно показываются в среднем на один запуск; учитывайте множитель.

Большое расхождение оценок влияет на выбор join и scan. Смотрите Rows Removed by Filter, Sort Method, временные чтения/записи и число обращений к таблице. Не складывайте времена родительских и дочерних узлов как независимые: они включают вложенную работу. Для меняющих данные запросов заранее предусмотрите безопасную среду проверки.

Источник: www.postgresql.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее