Грязное чтение (dirty read) происходит, когда транзакция читает данные, которые были изменены другой транзакцией, но ещё не зафиксированы (commit). Если вторая транзакция откатится, то первая получила недостоверные данные.
Чем отличается грязное чтение от фантомного при работе с транзакциями в базе данных?
Грязное чтение (dirty read) происходит, когда транзакция читает данные, которые были изменены другой транзакцией, но ещё не зафиксированы (commit).
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Грязное чтение (dirty read) происходит, когда транзакция читает данные, которые были изменены другой транзакцией, но ещё не зафиксированы (commit). Если вторая транзакция откатится, то первая получила недостоверные данные.
Фантомное чтение (phantom read) возникает, когда в рамках одной транзакции повторный запрос возвращает разные наборы строк из-за того, что другая транзакция добавила или удалила строки, соответствующие условию выборки.
Итого:
- Грязное чтение — чтение незакоммиченных изменений другой транзакции.
- Фантомное чтение — изменение набора строк (например, добавление новых) между двумя запросами в одной транзакции.