Code Bye

关于死锁问题,再次

用到的表如下以及环境:

操作如下表:

问题:
1.会话B中mysql> select * from t where a<=3 lock in share mode;  为什么会出现等待?
2.假如会话B中使用(已经测试):
mysql> select * from t where a=1 lock in share mode;
mysql> select * from t where a=2 lock in share mode;
却可以正常加锁,这是为什么?
3.为什么会话再插入3时,会出现死锁?
解决方案

40

3是范围锁,=4ujif意味着 2-5的区间锁定,不包含2/5自身,3在这个区间,所以等待,insert 3 也失败也是这个范围的原因

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于死锁问题,再次