Курс «PostgreSQL»: администрирование облачных инфраструктур - обучение онлайн ОТУС
2026-03-10 21:17 Diff

Путешествие запроса в PostgreSQL: от разбора до исполнения (от parser до executor)

Дмитрий Золотов

Каждый запрос в PostgreSQL проходит долгий путь прежде чем вернуть первую строку. Парсер, анализатор, rewriter, планировщик, executor — каждый этап принимает решения, которые напрямую влияют на производительность. На этом занятии мы вскроем «чёрный ящик» и разберём, как именно PostgreSQL превращает текст запроса в результат: какие структуры данных создаются на каждом шаге, как работает cost-based оптимизатор и почему иногда он ошибается.

Содержание занятия
- От текста к дереву: как работают лексер и парсер, что такое parse tree и query tree, и зачем нужен rule rewriter — на примере того, как VIEW превращается в подзапрос
- Планировщик изнутри: как опт��мизатор строит plan nodes, оценивает стоимость через статистику (pg_statistic, correlation, MCV), и в каких ситуациях его оценки катастрофически ошибаются
- Executor и runtime: как plan tree исполняется итераторной моделью (Volcano model), где живут данные в памяти, и как читать EXPLAIN ANALYZE так, чтобы видеть реальные узкие места

Целевая аудитория

- DBA и backend-разработчики, которые умеют читать EXPLAIN, но хотят понять почему планировщик принял именно такое решение
- Те, кто занимается оптимизацией производительности и хочет действовать осознанно, а не методом подбора индексов
- Инженеры, планирующие углубиться в разработку расширений или патчей для PostgreSQL

Вы пишете SELECT и получаете результат — но что происходит внутри? Парсер, оптимизатор, executor принимают десятки решений за миллисекунды. Пора узнать, как именно

Зарегистрируйтесь сейчас — напомним перед вебинаром!...