Блокировки координируют конкурирующие обращения к данным и схеме. Deadlock возникает, когда транзакции образуют цикл ожидания ресурсов друг друга.
Что такое блокировки в БД, когда они возникают и что такое deadlock?
Блокировки координируют конкурирующие обращения к данным и схеме. Deadlock возникает, когда транзакции образуют цикл ожидания ресурсов друг друга.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Блокировки координируют конкурирующие обращения к данным и схеме. Deadlock возникает, когда транзакции образуют цикл ожидания ресурсов друг друга.
Например, первая транзакция удерживает строку A и ждёт B, а вторая — наоборот. СУБД обычно обнаруживает цикл и прерывает одну участницу. Снижайте риск единым порядком захвата, короткими транзакциями и отсутствием внешних вызовов под lock. Повторять после deadlock нужно всю безопасно повторяемую транзакцию, а не произвольную последнюю команду.