mysq的dead锁为什么是对两张表操作才会产生?单表对不同行操作为什么不会产生?

_乌托邦 发布于 2019/03/15 10:03
阅读 74
收藏 0

如何使用英特尔®oneAPI工具实现PyTorch 优化,直播火热报名中>>>

例如:

START TRANSACTION;
update a
set name = 1
where id = 1;
sleep(10);
update a
set name = 2
where id = 2;
commit;
START TRANSACTION;
update a
set name = 2
where id = 2;
sleep(10);
update a
set name = 1
where id = 1;
commit;

快速执行这两条SQL为什么不会产生? 

加载中
0
紫衫青衣

update是行级锁

_
_乌托邦
对啊,第一个事务 锁住了 id为1的一行 , 第二个事务锁住了 id为2的一行 休眠10s后 都去操作被另一个事务锁住的另一行
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部