MySQL死锁的案例分享

  介绍

本篇内容介绍了“MySQL死锁的案例分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

<强>两个死锁的小例子:

  死锁案例1

  ,,,,比如自增列的死锁,一般的死锁得是4条DML语句互相牵制,我们可以做整合,简化,使得死锁的场景变得复杂起来。我们简单来模拟一下。,,

create table t8

(c1 int auto_increment,

, c2 int默认为空,

主键(c1),

唯一键(c2)

)引擎=InnoDB ,

# session1开始;

插入t8值(null, 10);

中# session2

插入t8值(null, 10);

# session1插入t8值(null, 9);

  死锁案例2

  ,,比如我们难度升级,两条删除语句导致的死锁。

创建表:创建表' d ' (

,“我”int (11) NOT NULL默认& # 39;0 & # 39;

,主键(“我”)

)引擎=InnoDB默认字符集=utf8mb4;

(1)插入d值;

# # session1 mysql>开始,

查询好,0行影响(0.00秒)

mysql>select *从d i=1锁定共享模式;

+ - - - +

|我|

+ - - - +

| 1 |

+ - - - +

1行组(0.00秒)

中# # session2

mysql>开始,

查询好,0行影响(0.00秒)

mysql>select *从d i=1锁定共享模式;

+ - - - +

|我|

+ - - - +

| 1 |

+ - - - +

1行组(0.00秒)

# session1 mysql>删除从d i=1;

查询好了,1行影响(10.80秒)

中# # session2

mysql>删除从d i=1;

错误1213(40001):死锁发现当试图让锁;试着重新启动事务

mysql>

MySQL死锁的案例分享