Практикум PostgreSQL — чек-лист самопроверки
Вопросы
- Что такое MVCC и зачем PostgreSQL создаёт новую версию строки при UPDATE?
- Какие системные поля
xmin,xmax,ctidозначают? - Что такое snapshot транзакции?
- Зачем нужен VACUUM и чем он отличается от VACUUM FULL?
- Что такое bloat и как autovacuum с ним связан?
- Что такое transaction ID wraparound и чем он опасен?
- Какие роли у checkpointer, bgwriter и walwriter?
- Зачем WAL записывается до сброса dirty pages на диск?
- Что даёт
EXPLAIN (ANALYZE, BUFFERS)? - Когда уместен GIN вместо B-tree?
- Для каких данных подходит BRIN?
- Что такое partial index?
- Как
work_memможет привести к OOM? - Зачем на SSD снижают
random_page_cost? - Какой минимальный
wal_levelнужен для streaming replication? - Чем logical replication отличается от physical?
- Что такое Hot Standby?
- Зачем PgBouncer в режиме transaction pooling?
- Почему данные Postgres в Docker нужно хранить в volume?
- Чем StatefulSet предпочтительнее Deployment для Postgres?
- Какую роль играет Patroni?
- Когда Greenplum уместнее «обычного» Postgres?
- Чем Wal-G дополняет pg_dump?
- Что такое PITR?
- Какие метрики смотреть в pg_stat_statements?
- Зачем тестировать restore бэкапа?
- Что автоматизирует Ansible vs Terraform для БД?
- Почему NOTIFY не заменяет Kafka для критичных событий?
- Как партиционирование помогает удалять старые логи?
- Где в энциклопедии базовый синтаксис SQL и JSONB-практикум?
- Чем phpPgAdmin дополняет psql и pgAdmin на учебном стенде?
- Какая цепочка глав SQL ведёт к практикуму 8.11 после phpPgAdmin?
Практические задания
- Поднимите Postgres в Docker Compose с healthcheck и volume; выполните серию UPDATE, отследите
n_dead_tup. - Оптимизируйте один медленный запрос — индекс +
EXPLAIN ANALYZEдо и после. - Настройте read replica или изучите
pg_stat_replicationна lab primary/standby. - Сделайте
pg_dump -Fcи restore в новую БД; проверьте целостность row count. - Опишите на одной странице архитектуру «приложение + PgBouncer + Patroni 3-node» для вашего pet-project.
Связанные материалы
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). MVCC, XID, снимки данных, системные поля xmin/xmax, VACUUM и autovacuum, bloat, wraparound, процессы postmaster, Shared Buffers и WAL. pg_dump, pg_basebackup, PITR, pg_probackup, Wal-G, стратегия 3-2-1, восстановление в Kubernetes и после failover. pg_stat_statements, pg_stat_activity, auto_explain, pgBadger, Prometheus postgres_exporter, типовые метрики SLA и алерты. Ansible role для установки Postgres, шаблоны postgresql.conf, Terraform для RDS и managed PostgreSQL, GitOps паттерны для инфраструктуры БД. EXPLAIN и EXPLAIN ANALYZE, B-tree, GiST, SP-GiST, GIN, BRIN, частичные и составные индексы, типовые ошибки планировщика. Тонкая настройка памяти (shared_buffers, work_mem, maintenance_work_mem), I/O (effective_cache_size, random_page_cost), WAL, checkpoint и autovacuum. Документная модель в Postgres, операторы и индексы JSONB, declarative partitioning по range/list/hash, связь с оконными функциями и CTE. Хранимые функции и процедуры PL/pgSQL, row-level и statement triggers, event triggers, асинхронные события через NOTIFY и LISTEN без polling. Streaming replication, logical replication, read replicas и Hot Standby, failover, connection pooling через PgBouncer — transaction и session pooling. Официальный образ postgres, volumes для PGDATA, переменные окружения, docker-compose с healthcheck, типовые ошибки контейнеризации СУБД. Managed PostgreSQL (RDS, Cloud SQL, Yandex Managed), StatefulSet, PersistentVolume, секреты, операторы Crunchy/Zalando, anti-patterns stateful в K8s. Patroni и DCS, сравнение с Greenplum и CockroachDB, когда нужен sharding, Citus, выбор архитектуры под OLTP и аналитику.Архитектура PostgreSQL и внутреннее устройство
Бэкапы PostgreSQL и восстановление
Профилирование и мониторинг PostgreSQL
Автоматизация PostgreSQL — Ansible и Terraform
Продвинутая оптимизация PostgreSQL и индексы
Конфигурация PostgreSQL — postgresql.conf
JSONB, партиционирование и расширения SQL в PostgreSQL
PL/pgSQL, триггеры и NOTIFY/LISTEN в PostgreSQL
Репликация PostgreSQL, Hot Standby и PgBouncer
PostgreSQL в Docker
PostgreSQL в облаке и Kubernetes
HA-кластеры PostgreSQL и распределённые СУБД