- 脏读
- A事务读取到B事务修改但未提交的数据,同个事务中A读取到不同的值
- 数据库隔离级别为RC即可解决
- 不可重复读
- A事务读取到B事务修改提交的数据,同个事务中A读取到不同的值
- 数据库隔离级别为RR即可解决
- 幻读
- A事务的过滤行(条件查询or条件更新)数目发生变化,同个事务中A更新/查询到的记录条数发生变化
- 依据”快照读”和”当前读”
- 快照读(MVCC)不会产生幻读,RR即可解决
- 当前读由于行锁解决幻读问题,需要使用next key lock(行锁+范围锁),如果条件过滤中是唯一索引,next key lock降级为行锁
参考 :https://blog.csdn.net/qq_35590091/article/details/107734005
参考 :https://www.jianshu.com/p/4c02a3a2e9d2