Пожалуйста, расскажите, какие части плана выполнения PostgreSQL вы обычно смотрите для оптимизации запросов?

Смотрите расхождение estimated и actual rows, время, loops, способ доступа и JOIN, сортировки, spills и buffers. Большая стоимость узла не равна измеренному времени выполнения.

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

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

Смотрите расхождение estimated и actual rows, время, loops, способ доступа и JOIN, сортировки, spills и buffers. Большая стоимость узла не равна измеренному времени выполнения.

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

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

Смотрите расхождение estimated и actual rows, время, loops, способ доступа и JOIN, сортировки, spills и buffers. Большая стоимость узла не равна измеренному времени выполнения.

Начинайте с дорогой ветви и выясняйте причину: неверная кардинальность, множество повторных проходов, чтение диска или недостаточный индекс. Actual rows/time в узле с loops нужно интерпретировать с учётом повторений. EXPLAIN ANALYZE исполняет запрос; тяжёлые и изменяющие запросы проверяйте в безопасных условиях. Сравнивайте планы с одинаковыми параметрами и данными.

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

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

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

Подробнее