digital-garden/knowledge/dev/database/Уровни изоляций транзакций БД.md
2024-06-13 21:01:37 +03:00

2.2 KiB
Raw Blame History

aliases tags date zero-link parents linked
зрелость/🌱
2023-11-22
00 Разработка
Транзакция БД

Read uncommitted (чтение незафиксированных данных). Если несколько параллельных транзакций пытаются изменять одну и ту же строку таблицы, то в окончательном варианте строка будет иметь значение, определенное всем набором успешно выполненных транзакций.

Read committed (чтение фиксированных данных). Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных.

Repeatable read (повторяющееся чтение). Уровень, при котором читающая транзакция «не видит» изменения данных, которые были ею ранее прочитаны. При этом никакая другая транзакция не может изменять данные, читаемые текущей транзакцией, пока та не окончена.

Serializable (упорядочиваемость). Самый высокий уровень изолированности; транзакции полностью изолируются друг от друга, каждая выполняется так, как будто параллельных транзакций не существует. Только на этом уровне параллельные транзакции не подвержены эффекту «фантомного чтения».