Книга «PostgreSQL 16. Оптимизация запросов»: учимся читать мысли планировщика. postgres pro.. postgres pro. postgresq.. postgres pro. postgresq. PostgreSQL.. postgres pro. postgresq. PostgreSQL. база данных.. postgres pro. postgresq. PostgreSQL. база данных. базы данных.. postgres pro. postgresq. PostgreSQL. база данных. базы данных. Блог компании Postgres Professional.. postgres pro. postgresq. PostgreSQL. база данных. базы данных. Блог компании Postgres Professional. книга.. postgres pro. postgresq. PostgreSQL. база данных. базы данных. Блог компании Postgres Professional. книга. Профессиональная литература.. postgres pro. postgresq. PostgreSQL. база данных. базы данных. Блог компании Postgres Professional. книга. Профессиональная литература. Читальный зал.

Планировщик запросов PostgreSQL — это интеллект, принимающий тысячи решений в секунду, и именно его понимание отличает хорошего разработчика от великолепного. Книга Павла Толмачёва «PostgreSQL 16. Оптимизация запросов» — компактный, но ёмкий путеводитель по внутренней кухне планировщика: как устроена его логика, как читать планы выполнения запросов и как исправить его, когда он ошибается.

Книга «PostgreSQL 16. Оптимизация запросов»: учимся читать мысли планировщика - 1

Издание основано на учебном курсе «QPT. Оптимизация запросов», разработанного компанией Postgres Professional, и сохранило его главное достоинство — возможность сложить цельную картину того, как работает планировщик, и на серьёзном уровне разобраться в его механизмах. Компактный форм-фактор издания удобно читать в метро или на ходу, когда нет возможности открыть ноутбук и немедленно проверить теорию на практике.

Для кого эта книга?

«PostgreSQL 16. Оптимизация запросов» предназначена для специалистов, которые уже работают с PostgreSQL и хотят перестать воспринимать планировщик как чёрный ящик. Книга будет особенно полезна:

  • разработчикам приложений, которые замечают «тормозящие» запросы и хотят понять, почему PostgreSQL выбирает именно такой план выполнения и как его улучшить;

  • администраторам баз данных, которым нужно грамотно настраивать конфигурационные параметры  на основе понимания механизмов, а не методом проб и ошибок.

Что внутри?

Книга последовательно проводит читателя от фундамента — устройства планировщика — к прикладным техникам оптимизации. Все примеры построены на учебной базе данных «Авиаперевозки», а значит, есть общий контекст на протяжении всего текста.

Книга разделена на девять глав:

  • Глава I. Демонстрационная база данных. Знакомство с учебной базой данных «Авиаперевозки»: схема таблиц, связи между ними, особенности данных. Формируется фундамент для всех последующих примеров.

  • Глава II. Планирование и выполнение. Разбор полного цикла обработки SQL-запроса: от синтаксического анализа и переписывания до планирования и исполнения. Отдельно рассматриваются кеширование планов (generic vs. custom), подготовленные операторы (PREPARE/EXECUTE) и роль статистики при принятии решений планировщиком.

  • Глава III. Методы доступа. Детальный разбор всех видов сканирования: последовательное (Seq Scan), индексное (Index Scan), по битовой карте (Bitmap Scan) и покрывающее (Index-Only Scan). Отдельная секция посвящена INCLUDE-индексам и условиям их эффективного применения.

  • Глава IV. Сортировка и группировка. Разбор механизмов упорядочивания и агрегации данных. Автор объясняет разницу между сортировкой в памяти (quicksort) и внешней сортировкой на диске (external merge), а также представляет эффективную инкрементальную сортировку. В части группировки сравниваются стратегии HashAggregate и GroupAggregate, рассматривается работа оконных функций.

  • Глава V. Способы соединения. Три алгоритма JOIN в PostgreSQL: вложенные циклы (Nested Loop), хеш-соединение (Hash Join) и слияние (Merge Join). Разбирается, когда планировщик выбирает каждый из них и как на этот выбор влияет work_mem.

  • Глава VI. Статистика. Глава о том, как планировщик «видит» данные. Рассматриваются базовые показатели (MCV, гистограммы, доля NULL) и инструменты исправления ошибок планировщика с привлечением расширенной статистики (функциональных зависимостей и многовариантных списков). Также объясняется механизм выбора между общими (generic) и частными (custom) планами для подготовленных операторов.

  • Глава VII. Профилирование. Практическое руководство по поиску узких мест. Автор рассказывает, что именно нужно измерять (время отклика vs ввод-вывод), как использовать расширение pg_stat_statements для получения профиля всей базы и как анализировать выполнение отдельных запросов через EXPLAIN ANALYZE. Отдельно показано профилирование кода на PL/pgSQL.

  • Глава VIII. Материализация и функции. Анализ того, как PostgreSQL работает с промежуточными результатами. Рассматривается узел Materialize, особенности материализации CTE (обобщенных табличных выражений) и использование временных таблиц. Важная часть главы посвящена категориям изменчивости функций (VOLATILE, STABLE, IMMUTABLE) и их критическому влиянию на возможность оптимизации запроса.

  • Глава IX. Подходы к настройке. Итоговая глава, объединяющая теорию в стратегию оптимизации. Рассматривается настройка сервера (параметры памяти, стоимости ресурсов, настройки параллелизма), влияние схемы данных и ограничений целостности на планы запросов. Завершается книга практическими примерами оптимизации «коротких» (OLTP) и «длинных» (OLAP) запросов путём переписывания условий и работы со статистикой.

Сильные стороны книги

Главное достоинство книги — исключительно плотная связь теории с практикой. Каждый метод доступа, каждый алгоритм соединения сопровождаются реальными выводами EXPLAIN ANALYZE с разбором каждой строки плана: что означает Buffers: shared hit/read, чем отличается lossy bitmap от exact, почему Heap Fetches равен нулю и когда это хорошо.

Книга не ограничивается описанием «как работает» — она методично учит «как диагностировать». Автор демонстрирует типичные ловушки: устаревшую статистику, неправильно оценённую селективность, неучтённые зависимости между столбцами, и показывает инструменты для их обнаружения и устранения.

Компактный формат — сознательный выбор. Книга не претендует на роль энциклопедии, но предлагает чёткую систему координат: после её прочтения читатель понимает, какие вопросы задавать при анализе медленного запроса и в каком порядке искать ответы.

Как получить книгу?

«PostgreSQL 16. Оптимизация запросов» свободно доступна на официальном сайте Postgres Professional. Там же можно найти сопутствующие материалы и демонстрационную базу данных «Авиаперевозки» для самостоятельной практики:

https://postgrespro.ru/education/books/qptbook

Автор: slonik_pg

Источник

Rambler's Top100