MySql 的隔离级别是可重复读
CREATE TABLE `t` (
`id` int(11) NOT NULL,
`c` int(11) DEFAULT NULL,
`d` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `c` (`c`)
) ENGINE=InnoDB;
insert into t values(0,0,0),(5,5,5),
(10,10,10),(15,15,15),(20,20,20),(25,25,25);
sessionA | sessionB |
---|---|
begin; | |
select * from t where c >=15 and c<=20 order by c desc for update; | |
insert into t (6,6,6); |
为什么 sessionB 会阻塞? 为什么在索引 c 上向左遍历,要扫描到 c=10 才停下来,next-key lock 会加到(5,10]? 求解答
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.