Встречается на собеседованиях • сегодня

Какие знаешь проблемы параллельного выполнения транзакций в БД

Основные проблемы параллельных транзакций:

  1. Lost Update - две транзакции читают данные, обе изменяют их, но сохраняется только последнее изменение:
sql
-- Транзакция 1: SELECT balance (100)
-- Транзакция 2: SELECT balance (100)
-- Транзакция 1: UPDATE balance = 100 + 50
-- Транзакция 2: UPDATE balance = 100 + 20
-- Результат: 120 (потеряно +50)
  1. Dirty Read - чтение незафиксированных данных другой транзакции, которая потом откатывается.

  2. Non-repeatable Read - разные значения при повторном чтении в одной транзакции из-за изменений другой транзакции.

  3. Phantom Read - появление новых строк при повторном чтении из-за вставок другой транзакции.

  4. Deadlock - взаимная блокировка транзакций, ожидающих ресурсы друг друга.

Для решения используются механизмы изоляции (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) и блокировки (оптимистичные/пессимистичные).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы