Смотрите расхождение estimated и actual rows, время, loops, способ доступа и JOIN, сортировки, spills и buffers. Большая стоимость узла не равна измеренному времени выполнения.
Пожалуйста, расскажите, какие части плана выполнения PostgreSQL вы обычно смотрите для оптимизации запросов?
Смотрите расхождение estimated и actual rows, время, loops, способ доступа и JOIN, сортировки, spills и buffers. Большая стоимость узла не равна измеренному времени выполнения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Смотрите расхождение estimated и actual rows, время, loops, способ доступа и JOIN, сортировки, spills и buffers. Большая стоимость узла не равна измеренному времени выполнения.
Начинайте с дорогой ветви и выясняйте причину: неверная кардинальность, множество повторных проходов, чтение диска или недостаточный индекс. Actual rows/time в узле с loops нужно интерпретировать с учётом повторений. EXPLAIN ANALYZE исполняет запрос; тяжёлые и изменяющие запросы проверяйте в безопасных условиях. Сравнивайте планы с одинаковыми параметрами и данными.