现在有 author表:

先插入3条数据:

开启两个事务 A 、B
事务A

事务B

然后继续执行事务A 还是只能看到3条数据

然后执行update操作:发现修改了4条数据 当前B事务为提交之前 会被锁住 B事务执行commit操作后 update操作会有以下修改

这就是幻读,读的时候发现是3条数据,而修改则能修改4条数据
引申:
1.数据库默认隔离级别:可重复读
2.MVCC多版本并发控制,当前读、快照读
一般的 select * from .... where ... 语句都是快照读
什么情况下使用的是当前读:(当前读,会在搜索的时候加锁)
select * from .... where ... for update select * from .... where ... lock in share mode update .... set .. where ... delete from. . where ..
网友评论