Back to questions
Junior — Middle
52
Можно ли объяснить, что такое взаимная блокировка в базе данных SQL?
Companies where asked
КубикТех
Answer from AI
sobes.tech AI
Взаимная блокировка (deadlock) в базе данных SQL — это ситуация, когда два или более транзакций блокируют ресурсы, которые нужны друг другу для продолжения работы, и ни одна из них не может продолжить выполнение.
Пример: Транзакция A захватила блокировку на таблице 1 и ждёт блокировку на таблице 2, а транзакция B захватила блокировку на таблице 2 и ждёт блокировку на таблице 1. В итоге обе транзакции «зависают».
Чтобы избежать взаимных блокировок, обычно применяют:
- упорядочивание доступа к ресурсам;
- таймауты на ожидание блокировок;
- использование уровней изоляции транзакций с учётом возможных блокировок.