Встречается на собеседованиях • сегодня
Какие возникают аномалии при параллельных транзакциях
При параллельном выполнении транзакций могут возникать следующие аномалии:
-
Потерянное обновление (Lost Update) – две транзакции читают одни данные, затем обе изменяют их, но сохраняется только результат последней.
java// Транзакция 1: balance = 100 → 150 // Транзакция 2: balance = 100 → 120 → сохраняется 120 (потеряно +50) -
Грязное чтение (Dirty Read) – чтение незафиксированных данных, которые могут быть откачены.
java// Транзакция 1: update balance = 200 (не commit) // Транзакция 2: read balance = 200 (но транзакция 1 откатилась)
-
Неповторяющееся чтение (Non-Repeatable Read) – повторное чтение в одной транзакции возвращает разные данные из-за изменений другой транзакции.
java// Транзакция 1: read balance = 100 // Транзакция 2: update balance = 150 и commit // Транзакция 1: read balance = 150 (значение изменилось) -
Фантомное чтение (Phantom Read) – появление новых строк при повторном чтении диапазона.
java// Транзакция 1: SELECT * FROM users WHERE age > 30 → 2 записи // Транзакция 2: INSERT INTO users ... age=35 и commit // Транзакция 1: повторный SELECT → 3 записи
Решаются настройкой уровня изоляции (READ_COMMITTED, REPEATABLE_READ и т.д.) или пессимистичными/оптимистичными блокировками.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы