死锁的分析与解决

2019-04-04  本文已影响0人  旦暮何枯

死锁

两个或者两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。

死锁产生的必要条件

互斥

串行修改:a 事务尚未提交,b 事务不能修改同个数据记录

请求与保持

不剥夺

环路等待

MySQL 中的锁

排他锁

与其他任何锁都是冲突的。

共享锁

多个事务可以共享一把锁。

加锁方式

外部加锁

由应用程序执行特定语句,显式的加锁;

内部加锁

为了实现 ACID 特性,由数据库内部自动添加

哪些 SQL 需要持有锁

捕获死锁的 sql 语句

sql 语句:

show engine innodb status
上一篇下一篇

猜你喜欢

热点阅读