1 mysql的可重复度并没有完全解决虚读幻读问题
如果是开启事务后,如果只有简单的select,那么它会触发快照读,为当前事务生成一个readview,后面的简单select也依旧会使用第一次生成的这个readview;
如果当前事务中,要是做了update,或者select... for update,就会变成当前读,如果执行了update并且where条件id小于10,那么小于10会被添加间隙锁,并执行当前读,获取最新的其他事务数据;后面如果在读取小于10 的数据,如果其它事务中间有insert发生,就会产生幻读。 如果当前事务后面的查询查的是大于10,那么可以避免幻读问题。
当前读语句:
select * from table where ? lock in share mode;
select * from table where ? for update;
insert into table values (…);
update table set ? where ?;
delete from table where ?;
标签:10,事务,update,2023,table,where,select From: https://www.cnblogs.com/zzq-include/p/17676851.html