Хранение данных/Базы данных/Реляционные БД/PostgreSQL/PostgreSQL.md
PostgreSQL
Темы:
-
понимать, что именно стоит “дорого” в запросах и транзакциях,
-
уметь читать EXPLAIN (ANALYZE),
-
прогнозировать риски: lock contention, bloat, autovacuum lag, I/O bottlenecks,
-
корректно обсуждать компромиссы с разработчиками/DBA.
Темы
Хранение и внутренние структуры
WAL, Checkpoint и восстановление
Память, кэш и I/O
Планирование и выполнение запросов
Планировщик запросов и EXPLAIN
ANALYZE и статистика планировщика
Запись данных и обслуживание
Конкурентность
Блокировки, уровни изоляции и дедлоки
Эксплуатация
Мониторинг и диагностика PostgreSQL
Резервное копирование, PITR и репликация
Мини-чеклист “что часто ломает прод”
-
Длинные транзакции ⇒ не чистятся версии строк ⇒ растёт bloat ⇒ падает производительность. См. VACUUM, Autovacuum и bloat.
-
Неправильные/устаревшие статистики ⇒ планировщик выбирает плохой план. См. ANALYZE и статистика планировщика.
-
Неподходящий тип индекса / запрос не “sargable” ⇒ индекс не используется. См. Индексы в PostgreSQL и Методы доступа к данным.
-
Lock contention / дедлоки ⇒ рост latency и timeouts. См. Блокировки, уровни изоляции и дедлоки.
-
I/O узкое место (WAL fsync, чтения heap, temp files на сортировках) ⇒ всё медленно. См. Память, кэш и I/O.