InnoDB引擎下,可重复读隔离级别下不能完全解决幻读问题
情况1
事务1.
START TRANSACTION;
select * from t where id = 1 ;
update t set b=2 where id = 1;
COMMIT;
事务2:
start TRANSACTION;
INSERT INTO t (id, b, c) values('1','1','1');
commit;
情况2
T1 时刻:事务 A 先执行「快照读语句」:select * from t_test where id > 100 得到了 3 条记录。
T2 时刻:事务 B 往插入一个 id= 200 的记录并提交;
T3 时刻:事务 A 再执行「当前读语句」 select * from t_test where id > 100 for update 就会得到 4 条记录,此时也发生了幻读现象。