Блок 2. PostgreSQL изнутри

Не «что такое индекс», а как PostgreSQL хранит версии строк, что видит транзакция, кто кого блокирует и почему планировщик выбрал именно этот план. Для аналитика это требования к консистентности, к миграциям и к производительности, основанные на понимании механизма, а не на «сделайте, чтобы работало быстро».

Лабораторные

Лаба Тема
Стенд Docker Compose с PostgreSQL и учебными данными
Лаба 1 Воспроизвести lost update, non-repeatable read, phantom, write skew
Лаба 2 Дедлок, очередь на SKIP LOCKED, очередь блокировок при DDL
Лаба 3 Когда индекс не берётся, ошибки оценки кардинальности, расширенная статистика

Главный источник

Егор Рогов, «PostgreSQL изнутри» (Postgres Professional). Бесплатный PDF на postgrespro.ru/education/books/internals. Книга покрывает этот блок почти целиком, её части прямо соответствуют модулям:

Часть книги Модули
I. Изоляция и многоверсионность 2.1, 2.2
II. Буферный кеш и журнал 2.6
III. Блокировки 2.3
IV. Выполнение запросов 2.4
V. Типы индексов 2.5

В дополнение — бесплатные видеокурсы Postgres Professional DBA2 (архитектура и внутреннее устройство) и QPT (оптимизация запросов).

Критерий завершения блока

Три лабораторные выполнены, выводы записаны своими словами. Можешь по живому EXPLAIN (ANALYZE, BUFFERS) незнакомого запроса за пять минут объяснить, где проблема.


Table of contents