Блокировка (СУБД)

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Блокировка (англ. lock) в СУБД -- это отметка о захвате объекта транзакцией в ограниченный или эксклюзивный доступ с целью предотвращения коллизий и поддержания целостности данных.

Содержание

Виды блокировок

По области действия блокировки бывают:

  • Строчные
  • Гранулярные
  • Предикатные

По строгости блокировки разделяются на:

  • Совместные (shared)
  • Эксклюзивные (exclusive)

Строчные блокировки

Строчные блокировки -- действуют только на одну строку таблицы.

Гранулярные блокировки

Гранулярные блокировки -- действуют на всю таблицу или всю страницу и все строки.

Предикатные блокировки

Предикатные блокировки -- действуют на область, ограниченную предикатами.

Совместные блокировки

Совместная блокировка -- накладывется транзакцией на объект в случае, если выполняемая ей операция S безопасна, то есть не изменяет никаких данных и не имеет побочных эффектов. Все транзакции могут выполнять операцию S над объектом, если на него наложена совместная блокировка.

Эксклюзивные блокировки

Эксклюзивная блокировка -- накладывется транзакцией на объект в случае, если выполняемая ей операция изменяет данные. Только одна транзакция может выполнять подобную операцию над объектом, если на него наложена эксклюзивная блокировка. Блокировка не может быть наложена на объект, если на него уже наложена совместная блокировка.

Таким образом, таблица совместимости блокировок следующая:

S X
S + --
X -- --

где S -- совместная блокировка, X -- эксклюзивная блокировка, + -- означает блокировки совместимы, -- -- несовместимы. По строкам изображены типы блокировок, накладываемые одной транзакцией, по столбцам -- другой транзакцией.en:Lock (database) zh:封锁 (数据库)

Личные инструменты

Served in 0.046 secs.