Блокировка и deadlock — это оба конфликта блокировок в SQL, но они отличаются тем, как возникают и как разрешаются.
Блокировка происходит, когда одна транзакция пытается получить блокировку ресурса, который уже заблокирован другой транзакцией в несовместимом режиме блокировки.
Это нормальная часть параллельной работы с базой данных, которая разрешается сама по себе.
Deadlock происходит, когда две или более транзакции взаимно блокируют друг друга, создавая циклическую зависимость, из которой невозможно выйти самостоятельно.
Транзакция A держит Lock 1, ждет Lock 2
Транзакция B держит Lock 2, ждет Lock 1
→ Ни одна транзакция не может продолжить
Deadlock требует вмешательства engine базы данных и завершения одной из транзакций, в то время как блокировка разрешается автоматически, когда транзакция, удерживающая блокировку, её отпускает.
Новый — ещё не проверен сообществом
Вы