Sobes.tech
Junior — Middle

Peut-on expliquer ce qu'est un verrouillage mutuel dans une base de données SQL?

sobes.tech IA

Réponse de l'IA

Взаимная блокировка (deadlock) в базе данных SQL — это ситуация, когда два или более транзакций блокируют ресурсы, которые нужны друг другу для продолжения работы, и ни одна из них не может продолжить выполнение.

Пример: Транзакция A захватила блокировку на таблице 1 и ждёт блокировку на таблице 2, а транзакция B захватила блокировку на таблице 2 и ждёт блокировку на таблице 1. В итоге обе транзакции «зависают».

Чтобы избежать взаимных блокировок, обычно применяют:

  • упорядочивание доступа к ресурсам;
  • таймауты на ожидание блокировок;
  • использование уровней изоляции транзакций с учётом возможных блокировок.