Sobes.tech
Junior — Middle

SQL verilənlər bazasında qarşılıqlı kilidləmə nə olduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

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

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

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

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