MySQL怎么看死锁记录

devtools/2024/9/24 7:14:34/

在这里插入图片描述
这个结果分成三部分:
(1) TRANSACTION,是第一个事务的信息;
(2) TRANSACTION,是第二个事务的信息;
(3)WE ROLL BACK TRANSACTION (1),是最终的处理结果,表示回滚了第一个事务。

第一个事务的信息中:WAITING FOR THIS LOCK TO BE GRANTED,表示的是这个事务在等待的锁信息;
index c of table test.t,说明在等的是表 t 的索引 c 上面的锁;
lock mode S waiting 表示这个语句要自己加一个读锁,当前的状态是等待中;
Record lock 说明这是一个记录锁;
n_fields 2 表示这个记录是两列,也就是字段 c 和主键字段 id;
0: len 4; hex 0000000a; asc ;; 是第一个字段,也就是 c。值是十六进制 a,也就是 10;
1: len 4; hex 0000000a; asc ;; 是第二个字段,也就是主键 id,值也是 10;
这两行里面的 asc 表示的是,接下来要打印出值里面的“可打印字符”,但 10 不是可打印字符,因此就显示空格。
第一个事务信息就只显示出了等锁的状态,在等待 (c=10,id=10) 这一行的锁。
当然你是知道的,既然出现死锁了,就表示这个事务也占有别的锁,但是没有显示出来。别着急,我们从第二个事务的信息中推导出来。

n_fields 6 表示这个记录是六列
第一行是主键值
0: len 2; hex 0002; asc ;; 是第一个字段,也就是 actor_id。值是十六进制0002,也就是 2;
第二行是最近一次修改这行的事务id
1: len 6; hex 000000000ef8; asc ;;  计算得出是 3832
后面就是其它每个字段的值
2: len 7; hex cf0000032b011a; asc + ;;
3: len 4; hex 4e49434b; asc NICK;;
4: len 8; hex 5741484c42455247; asc WAHLBERG;;
5: len 4; hex 43f23ed9; asc C > ;;

第二个事务显示的信息要多一些:
“ HOLDS THE LOCK(S)”用来显示这个事务持有哪些锁;
index c of table test.t 表示锁是在表 t 的索引 c 上;
hex 0000000a 和 hex 00000014 表示这个事务持有 c=10 和 c=20 这两个记录锁;
WAITING FOR THIS LOCK TO BE GRANTED,表示在等 (c=5,id=5) 这个记录锁。

从上面这些信息中,我们就知道:“lock in share mode”的这条语句,持有 c=5 的记录锁,
在等 c=10 的锁;
“for update”这个语句,持有 c=20 和 c=10 的记录锁,在等 c=5 的记录锁


http://www.ppmy.cn/devtools/25007.html

相关文章

python 注释符

4、注释 1、单行注释 单行注释用于解释代码中的一行或一小段代码。 在Python中,单行注释以#开头,后面的内容都是注释。 单行注释可以放在代码的任何位置,但通常放在代码行的上方或旁边。 单行注释不会影响代码的执行,Python解…

精酿啤酒:酿造工艺的自动化与智能化发展

随着科技的不断进步,自动化与智能化已成为啤酒酿造工艺的重要发展方向。Fendi Club啤酒紧跟时代潮流,积极推动酿造工艺的自动化与智能化发展,旨在提高生产效率、确保产品品质和满足市场需求。 Fendi Club啤酒引入自动化生产设备。他们采用自动…

Go语言中,两个比较流行的缓存库

在 Go 中实现带有过期时间的缓存通常需要一个可以自动处理键值过期的缓存系统。虽然标准库中没有直接提供这种功能,但有几个流行的第三方库可以很好地满足这一需求。下面我会介绍两个比较流行的 Go 缓存库:go-cache 和 bigcache。 1. go-cache go-cache…

flask+uwsgi+nginx+cerbot配置

配置步骤 安装flask和uwsgi pip install Flask uwsgi 创建一个简单的flask应用(app.py)或者是自己的flask项目 from flask import Flask app Flask(__name__)app.route(/) def hello_world():return Hello, World! 配置uwsgi,这里我给出…

踏上大数据第一步:flume

一、概述 Flume是一个分布式、可靠、可用的系统,用于高效地收集、聚合和移动大量日志数据。它旨在从不同的数据源收集数据,并将其存储到中央数据存储中,如HDFS、HBase或Solr等。Flume是Apache旗下的一个顶级项目,是Hadoop生态系统中的一个重要组件。 Flume的主要应用场景包括…

SpringBoot配置HTTPS及开发调试

前言 在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享 后端配置 …

练习-搬家具进房子

1. 搬家具规则 家具 家具分不同的类型,并占用不同的面积输出家具信息时,显示家具的类型和家具占用的面积 房子 房子有自己的地址和占用的面积房子可以添加家具 如果房子的剩余面积可以容纳家具,提示家具添加成功;否则提示添加…

基于ssm+vue+Mysql的企业公寓后勤管理系统

开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.…