Mysql 锁机制分析
以下文章来源于京东技术 ,作者京东物流 张弓言
01 背景
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
最近双十一开门红期间组内出现了一次因 Mysql 死锁导致的线上问题,当时从监控可以看到数据库活跃连接数飙升,导致应用层数据库连接池被打满,后续所有请求都因获取不到连接而失败。
整体业务代码精简逻辑如下:
@Transaction
public void service(Integer id) {
delete(id);
insert(id);
}
create table `test` (
`id` int(11) NOT NULL,
`num` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `num` (`num`)
) ENGINE = InnoDB;
<br>
insert into
test
values
(10, 10),
(20, 20),
(30, 30),
(40, 40),
(50, 50);