PostgreSQL использует блокировки для координации параллельного доступа и предотвращения конфликтов. Благодаря MVCC, читаемые операции обычно не требуют блокировок (читатели не блокируют писателей), но операции записи получают блокировки на уровне строк, и различные типы блокировок координируют операции. Понимание механизма блокировки помогает избежать конкуренции и взаимных блокировок (deadlock).
MVCC означает, что читаемые операции обычно не блокируют
Because of MVCC, plain SELECTs do NOT take row locks — they read a consistent snapshot.
→ Readers don't block writers, writers don't block readers (a key Postgres advantage).
Locking mainly comes into play for WRITES and explicit locking.
