mysql出现死锁场景_mysql死锁场景分析

本文通过一个具体的死锁案例,分析了MySQL中出现死锁的场景。两个并发事务在执行delete和insert操作时,由于唯一索引导致的锁冲突引发了死锁。通过查看InnoDB死锁日志,可以理解事务的等待状态和锁模式,从而解决死锁问题。
摘要由CSDN通过智能技术生成

一团网资讯

一团资讯 > mysql > mysql死锁场景分析

mysql死锁场景分析

2017-10-19 06:44:38     发布者:来源网络

今天在DBGeek威信公众号上看到一篇推荐文章——记录一次MySQL死锁排查过程

文中提供了一个死锁场景,并给出了合理的解释:

表结构:

Create Table: CREATE TABLE `test` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`a` int(10) unsigned DEFAULT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `a` (`a`)

) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8

表数据:

+----+------+

| id | a |

+----+------+

| 1 | 1 |

| 2 | 2 |

| 4 | 4 |

+----+------+

死锁的操作:(操作执行顺序从上到下依次执行)

事务1 :mysql> start transaction;

事务2: mysql> start transaction ;

事务1:mysql> delete from test where a=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值