Что важно знать
- ACID: атомарность, согласованность, изоляция, долговечность.
- Уровни: Read Committed (по умолчанию в PostgreSQL), Repeatable Read, Serializable — чем строже, тем меньше аномалий и больше конфликтов.
- Аномалии: грязное и неповторяющееся чтение, фантомы, потерянное обновление, write skew.
- Оптимистическая блокировка — версия строки; пессимистическая —
SELECT … FOR UPDATE. - MVCC — читатели не блокируют писателей, у каждой транзакции свой снимок.
- Длинные транзакции держат блокировки и мешают очистке старых версий.