Встречается на 2% собеседований по Python
Что такое deadlock в SQL
Deadlock возникает, когда две или более транзакции блокируют ресурсы, которые нужны друг другу, и ни одна не может продолжить выполнение.
Пример:
Транзакция 1 блокирует строку A и пытается получить доступ к строке B, а транзакция 2 блокирует строку B и пытается получить доступ к строке A.
sql
-- Транзакция 1
BEGIN;
UPDATE table1 SET col1 = 1 WHERE id = 1; -- Блокировка строки A
UPDATE table1 SET col1 = 2 WHERE id = 2; -- Ожидание строки B
-- Транзакция 2 (параллельно)
BEGIN;
UPDATE table1 SET col1 = 3 WHERE id = 2; -- Блокировка строки B
UPDATE table1 SET col1 = 4 WHERE id = 1; -- Ожидание строки AРешение:
- Использование
NOWAITили таймаутов (SET LOCK_TIMEOUT). - Оптимизация порядка блокировок.
- СУБД автоматически обнаруживает deadlock и отменяет одну из транзакций.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы