🤔 Назови четыре уровня изоляции транзакций?
🚩Уровни изоляции
🟠Read Uncommitted (Чтение незафиксированных данных)
Транзакция может читать данные, измененные другой транзакцией, даже если та еще не зафиксирована. Грязные чтения, неповторимые чтения и фантомные чтения. Редко используется на практике из-за высокого риска неконсистентных данных.
🟠Read Committed (Чтение зафиксированных данных)
Транзакция видит только те изменения, которые были зафиксированы другими транзакциями. Незафиксированные изменения не видны. Неповторимые чтения и фантомные чтения. Широко используется, обеспечивает баланс между производительностью и консистентностью данных.
🟠Repeatable Read (Повторяемое чтение)
Гарантирует, что если транзакция повторно читает данные, она получит те же самые значения, даже если другие транзакции изменяют данные. Фантомные чтения. Используется, когда требуется более высокий уровень консистентности данных, но допускаются фантомные чтения.
🟠Serializable (Сериализуемый)
Обеспечивает максимальный уровень изоляции. Транзакции выполняются так, как если бы они были сериализованы, то есть последовательно. Нет. Обеспечивает наивысшую консистентность данных, но может значительно снижать производительность из-за блокировок и задержек.
🚩Аномалии
🟠Грязное чтение (Dirty Read)
Происходит, когда транзакция читает данные, измененные другой транзакцией, которая еще не зафиксирована. Уровень Read Uncommitted допускает эту аномалию.
🟠Неповторимое чтение (Non-repeatable Read)
Происходит, когда транзакция читает те же данные несколько раз и получает разные значения из-за фиксации изменений другой транзакцией. Уровни Read Committed и выше предотвращают грязные чтения, но Read Committed допускает неповторимые чтения.
🟠Фантомное чтение (Phantom Read)
Происходит, когда транзакция выполняет одно и то же запрос несколько раз и видит разные наборы строк из-за вставки, обновления или удаления данных другой транзакцией. Уровень Repeatable Read предотвращает неповторимые чтения, но допускает фантомные чтения. Уровень Serializable предотвращает все три аномалии.
Ставь 👍 и забирай 📚 Базу знаний
Post #1741
207