Уровни изоляции определяют, насколько транзакции "видят" изменения друг друга. В PostgreSQL четыре уровня:
Read Uncommitted — в PostgreSQL работает как Read Committed (грязное чтение невозможно). Read Committed (default) — видишь только закоммиченные данные. Между запросами внутри транзакции данные могут измениться. Repeatable Read — снимок данных на начало транзакции. Повторное чтение вернёт те же данные. Запись конфликтующих строк вызывает ошибку сериализации. Serializable — полная изоляция, как будто транзакции выполняются последовательно. Самый медленный, но самый безопасный.
На практике Read Committed хватает для 95% случаев. Repeatable Read нужен для отчётов и когда важна консистентность чтения.