mysql死锁是什么意思
程序员文章站
2022-03-22 19:53:34
...
mysql死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环。InnoDB存储引擎能检测到死锁的循环依赖并立即返回一个错误。只有部分或完全回滚其中一个事务,才能打破死锁。
什么是死锁?它是如何产生的?
死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环。
(推荐教程:mysql教程)
当事务试图以不同的顺序锁定资源时,就可能产生死锁。多个事务同时锁定同一个资源时也可能会产生死锁。
锁的行为和顺序和存储引擎相关。以同样的顺序执行语句,有些存储引擎会产生死锁有些不会——死锁有双重原因:真正的数据冲突;存储引擎的实现方式。
检测死锁
数据库系统实现了各种死锁检测和死锁超时的机制。InnoDB存储引擎能检测到死锁的循环依赖并立即返回一个错误。
死锁恢复
死锁发生以后,只有部分或完全回滚其中一个事务,才能打破死锁。
InnoDB目前处理死锁的方法是,将持有最少行级排他锁的事务进行回滚。所以事务型应用程序在设计时必须考虑如何处理死锁,多数情况下只需要重新执行因死锁回滚的事务即可。
以上就是mysql死锁是什么意思的详细内容,更多请关注其它相关文章!
推荐阅读
-
强基计划破格录取是什么意思?2021清华强基计划破格标准(含北大等一流高校)
-
探讨c#中的unchecked是什么意思,起什么作用?
-
双一流大学是什么意思?双一流大学和985211有什么区别?
-
双一流b类大学是什么意思?为什么说双一流大学b类惨了?
-
双一流高职院校是什么意思?双一流高职院校与专业群之间的关系?(2021年参考)
-
MySQL数据库的一次死锁实例分析
-
三本院校转设是什么意思?为什么三本要转设?
-
2021年广东本科高校不再设高分优先投档线:是什么意思?是一本线吗?
-
强基计划破格录取是什么意思?2021清华强基计划破格标准(含北大等一流高校)
-
MySql delimiter的作用是什么