一 前言
工欲善其事必先利其器,前面分析了很多死锁案例,并没有详细的介绍如何通过死锁日志来诊断死锁的成因。本文将介绍如何读懂死锁日志,尽可能的获取信息来辅助我们解决死锁问题。
二 日志分析
2.1 场景
为了更好的学习死锁日志,我们需要提前了解死锁场景
MySQL 5.6 事务隔离级别为RR
CREATE TABLE `ty` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idxa` (`a`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4
insert into ty(a,b) values(2,3),(5,4),(6,7);
2.2 测试用例
| T2 |
T1 |
| begin; |
|
| delete from ty where a=5; |
begin; |
| delete from ty where a=5; |
|
| insert into ty(a,b) values(2,10); |
|

本文介绍了如何通过MySQL死锁日志来诊断死锁问题,详细解析了死锁日志的内容,包括事务状态、锁类型和等待情况,帮助读者理解死锁成因并提供解决思路。
最低0.47元/天 解锁文章
1911

被折叠的 条评论
为什么被折叠?



