Встречается на собеседованиях • сегодня
Что такое 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
интервью вопросы и ответы