Что такое deadlock? Как избежать?

Ответ

Взаимная блокировка: транзакция A ждет ресурс, занятый B, а B ждет ресурс, занятый A. СУБД обнаруживает deadlock и откатывает одну из транзакций (жертва). Избежание: фиксированный порядок блокировки ресурсов (всегда блокировать в одном порядке, например по id); короткие транзакции; избегать цепочек ожидания; ретраи при deadlock. Мониторинг: логирование deadlock, pg_stat_activity.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.