Какие типы блокировок (locks) существуют в СУБД?
Уровень: Senior
Ответ
Основные: Shared (разделяемая) – блокировка на чтение, позволяющая другим тоже читать, но запрещающая изменять ресурс (строку, страницу) в это время; Exclusive (исключительная) – блокировка на запись, полностью монопольно закрывающая ресурс от других транзакций на время изменения (никто не может ни читать с shared, ни писать). Кроме того, существуют промежуточные типы: Update-блокировка (намерение обновить – в SQL Server) или Intent Locks (намерения на уровне страницы/таблицы) – они используются СУБД для координации разных уровней блокировок. Но по сути, для пользователя важны shared-lock (несколько транзакций могут параллельно читать) и exclusive-lock (одна транзакция изменила или собирается изменить – другие ждут).