Dirty Read (грязное чтение) — это проблема при работе с базами данных в многопользовательской среде, когда одна транзакция читает данные, которые были изменены (но еще не зафиксированы) другой транзакцией. Если транзакция, изменившая данные, в итоге откатится (rollback), то данные, прочитанные первой транзакцией, окажутся неверными или "грязными".
Особенности:
- Неповторяемое чтение (Non-repeatable Read): Хотя Dirty Read связан с неповторяемым чтением, он более критичен. Неповторяемое чтение происходит, когда транзакция читает одни и те же данные дважды и получает разные значения из-за фиксации изменений другой транзакцией. Dirty Read читает изменения, которые даже не были зафиксированы.
- Потеря обновлений (Lost Update): Dirty Read может привести к потере обновлений. Если транзакция 1 читает незафиксированное изменение от транзакции 2, а затем записывает свое изменение поверх, не учитывая откат транзакции 2, то изменение транзакции 2 будет потеряно.
- Уровень изоляции: Dirty Read возможен при самом низком уровне изоляции транзакций
READ UNCOMMITTED
. Этот уровень по
Dirty Read (грязное чтение) — это проблема при работе с базами данных в многопользовательской среде, когда одна транзакция читает данные, которые были изменены (но еще не зафиксированы) другой транзакцией. Если транзакция, изменившая данные, в итоге откатится (rollback), то данные, прочитанные первой транзакцией, окажутся неверными или "грязными".
Особенности:
- Неповторяемое чтение (Non-repeatable Read): Хотя Dirty Read связан с неповторяемым чтением, он более критичен. Неповторяемое чтение происходит, когда транзакция читает одни и те же данные дважды и получает разные значения из-за фиксации изменений другой транзакцией. Dirty Read читает изменения, которые даже не были зафиксированы.
- Потеря обновлений (Lost Update): Dirty Read может привести к потере обновлений. Если транзакция 1 читает незафиксированное изменение от транзакции 2, а затем записывает свое изменение поверх, не учитывая откат транзакции 2, то изменение транзакции 2 будет потеряно.
- Уровень изоляции: Dirty Read возможен при самом низком уровне изоляции транзакций
READ UNCOMMITTED
. Этот уровень по