我了解页面上针对隔离级别给出的“脏读”和“幻读”示例。但是我不确定如何对以下两种情况进行分类:两个事务级别给出相同的输出。那么哪个隔离级别导致幻像读取
第1部分(READ COMMITTED隔离)
START TRANSACTION;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT * FROM Web_User WHERE `Web_User`.`UserID` > 860 FOR UPDATE;;
INSERT INTO Web_User VALUES(865,1,'xx@gmail.com',2,'PMXLIVE','PmxPBX',7,11,'2017-11-24 16:46:35',1066);
UPDATE Web_User SET Username='2' WHERE UserID=864;
SELECT SLEEP(10);
SELECT * FROM Web_User WHERE `Web_User`.`UserID` > 860 FOR UPDATE;
事务2(可重复读取隔离)
START TRANSACTION;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT * FROM Web_User WHERE `Web_User`.`UserID` > 860 FOR UPDATE;;
INSERT INTO Web_User VALUES(865,1,'xx@gmail.com',2,'PMXLIVE','PmxPBX',7,11,'2017-11-24 16:46:35',1066);
UPDATE Web_User SET Username='2' WHERE UserID=864;
SELECT SLEEP(10);
SELECT * FROM Web_User WHERE `Web_User`.`UserID` > 860 FOR UPDATE;
根据我的理解,两种输出如何给出相同的结果mysql是为REPEATABLE READ创建间隙锁和快照,从而给出相同的结果。 参考下面的链接