TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.3K subscribers
Post #2034 799
🤔 Какие уровни изоляции ты знаешь?

Уровни изоляции в системах управления базами данных (СУБД) определяют, как операции транзакций видят и взаимодействуют с изменениями, внесенными другими параллельно выполняющимися транзакциями. Эти уровни изоляции помогают контролировать различные виды аномалий, таких как грязное чтение, неповторяющееся чтение и фантомные чтения. В стандарте SQL существует четыре основных уровня изоляции:

🚩Read Uncommitted (чтение незафиксированных данных)

Этот уровень изоляции позволяет транзакциям видеть изменения других транзакций, даже если эти изменения еще не зафиксированы. Наименее строгий уровень изоляции, с наибольшей вероятностью возникновения аномалий.
Аномалии: Грязное чтение (Dirty Read): Транзакция может прочитать данные, которые были изменены другой транзакцией, но еще не зафиксированы.

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;


🚩Read Committed (чтение зафиксированных данных)

Транзакция может видеть только те изменения, которые были зафиксированы другими транзакциями. Средний уровень изоляции, который предотвращает грязные чтения, но допускает другие аномалии.
Аномалии: Неповторяющееся чтение (Non-repeatable Read): Транзакция может дважды прочитать одно и то же значение и получить разные результаты, если другая транзакция изменила данные и зафиксировала изменения между двумя чтениями.

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;


🚩Repeatable Read (повторяемое чтение)

Транзакция гарантирует, что если она читает данные, они останутся неизменными до завершения транзакции. Более строгий уровень изоляции, который предотвращает грязные и неповторяющиеся чтения, но не предотвращает фантомные чтения.
Аномалии: Фантомное чтение (Phantom Read): Транзакция может получить разные результаты при выполнении одного и того же запроса, если другая транзакция добавляет или удаляет строки, которые соответствуют условиям запроса.

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;


🚩Serializable (сериабельность)

Самый строгий уровень изоляции, который эмулирует последовательное выполнение транзакций. Полностью предотвращает грязные чтения, неповторяющиеся чтения и фантомные чтения.
Аномалии: Никаких аномалий. Все транзакции выполняются так, как если бы они были выполнены последовательно.

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 1
More from @easy_php_ru
  1. Oct 15, 2026🤔 Что такое замыкание? Это функция, которая «захватывает» переменные из внешней области в…
  2. Oct 15, 2026🤔 Что есть кроме микросервисной и монолитной архитектуры? Помимо монолитной и микросервис…
  3. Oct 14, 2026🤔 В чём суть абстрактного класса? Абстрактный класс — это класс, который нельзя инстанцир…
  4. Oct 14, 2026🤔 В чем принцип работы HashTable? Хеш-таблица – это структура данных, которая хранит пары…
  5. Oct 13, 2026🤔 Что такое namespaces Namespaces в PHP — это способ организации кода для предотвращения…
  6. Oct 13, 2026🤔 Чем отличается Require от Includ'а? В PHP есть две схожие конструкции для подключения ф…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →