Базы данных / SQL middle
В PostgreSQL нет Read Uncommitted — почему?
Ответ
Минимальный уровень — Read Committed. PostgreSQL использует MVCC: каждая транзакция видит snapshot, грязные данные физически невозможно прочитать (нет dirty read). Read Uncommitted в PG ведёт себя как Read Committed — отдельный уровень просто не нужен.
Разбор: Из-за MVCC незакоммиченные изменения хранятся как отдельные версии строк, невидимые для чужого snapshot, поэтому dirty read невозможен в принципе и отдельный уровень Read Uncommitted не нужен — запрос его получает, но он работает как Read Committed. Неверно, что старые версии удаляются мгновенно (их чистит VACUUM позже) и что читатели берут блокировки на строки — в MVCC чтение не блокирует запись.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.