mysql唯一索引锁范围?
CREATE TABLE `b` (
`a` int(11) NOT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL,
PRIMARY KEY (`a`),
UNIQUE KEY `idx_b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert(1,1,1);
insert(3,3,3);
insert(5,5,5);
insert(10,10,10);
insert(15,15,15);
session 1:
begin;
select * from b where b >= 10 for update;
commit;
根据唯一索引的等值查询会退化成行锁这一前提,计算以上语句对b索引的加锁范围为[10],(10,15],(15,+], 对主键索引为[10],[15]
session 2:
insert(9,9,9); -- 被阻塞,请问这是为什么呢
当把session 1 的 b>= 10 改成 a >= 10后,session 2就可以正常插入.
a是主键,b也是唯一索引,请问这是什么原因,我遗漏了什么知识点
mysql 8.0.12 , rr隔离级别
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是什么隔离级别