План запроса — дерево операций, выбранных СУБД для получения результата: сканирования, соединения, сортировки и агрегаты. Он помогает найти дорогой этап и неверные оценки.
Что такое план запросов? Зачем они нужны?
План запроса — дерево операций, выбранных СУБД для получения результата: сканирования, соединения, сортировки и агрегаты. Он помогает найти дорогой этап и неверные оценки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
План запроса — дерево операций, выбранных СУБД для получения результата: сканирования, соединения, сортировки и агрегаты. Он помогает найти дорогой этап и неверные оценки.
EXPLAIN показывает предполагаемый план и стоимость, а EXPLAIN ANALYZE выполняет запрос и добавляет фактические строки, время и число повторов. В PostgreSQL BUFFERS помогает увидеть обращения к буферам и чтение.
Сравнивайте estimated и actual rows, проверяйте большие loops, сортировки на диске и лишние чтения. Стоимость плана не равна миллисекундам. ANALYZE действительно исполняет запрос, поэтому диагностировать изменяющие данные команды таким способом нужно только в безопасном окружении.
Источник: www.postgresql.org.