Advisory locks блокируют логический ключ, выбранный приложением, а не автоматически строки таблицы. Для короткой бизнес-операции удобна блокировка до конца транзакции.
WAL-архивация сохраняет завершённые сегменты для восстановления, а streaming replication передаёт WAL реплике. Если необходимые сегменты исчезнут, отставшая реплика не сможет продолжить обычное получение.
Сначала разделите время ожидания соединения, собственно SQL и сетевую часть. Низкий CPU БД не исключает locks, насыщение пула, I/O или изменившийся маршрут после Kubernetes deployment.
MongoDB уместна, когда данные естественно образуют документы с вложенной структурой и часто читаются как единый агрегат. Выбор должен следовать модели и нагрузке, а не только желанию избежать схемы.
MVCC хранит несколько версий строк и выбирает видимые для снимка транзакции. Благодаря этому обычное чтение не должно блокировать каждое конкурентное изменение той же строки.
Для предварительной подготовки аналитики в PostgreSQL подходят materialized views или отдельные агрегатные таблицы. Приложение читает готовые результаты вместо повторного тяжёлого расчёта.
Плохой индекс — индекс, стоимость которого не оправдывается запросами: дублирующий, неиспользуемый или неподходящий по составу и условию. Он занимает место и замедляет изменения данных.
Из вариантов наиболее полный — отдельный контролируемый запуск миграций и readinessProbe приложения. Readiness не допускает трафик до готовности, а миграции не конкурируют при старте каждой реплики.
Стандарт не запрещает более сильные гарантии: он допускает фантомы при Repeatable Read, но не требует их появления. PostgreSQL предотвращает их стабильным MVCC-снимком транзакции.
Phantom read — изменение набора строк того же условия из-за commit другой транзакции. PostgreSQL Repeatable Read использует стабильный MVCC-снимок и не показывает такие новые строки.
Сначала измерьте ожидание выдачи соединения, число занятых и свободных соединений, очередь и таймауты именно в пуле приложения или PgBouncer. pg_stat_activity показывает серверные сессии, а не всю очередь пула.
wal_compression в PostgreSQL сжимает прежде всего полные образы страниц в WAL, а не произвольный WAL-файл целиком. Это уменьшает объём записи и передачи ценой дополнительной работы CPU.