隔离级别
- 可读未提交内容 READ UNCOMMIT(会出现脏读问题)
- 可读已提交内容 READ COMMITED
- 可重复读 (解决了脏读问题,但会导致幻读,不过可以通过MVCC解决掉幻读)
- 可串行化(足够安全,但是效率也足够低)
- 通过强制事务排序,使之不可能产生冲突
出现的问题
- 脏读
- 事务A正在更新数据但未提交,此时事务B来读取数据,就会出现读到的数据可能跟最后持久化的数据不一致问题
- 不可重复读
- 事务A第一次读取某一行数据返回data1,在第二次读之前有一个事务B对该行数据做了修改,那么事务A第二次读就不是data1了,我们理想情况是同一个事务中读取到同样的结果 - 虚读/幻读
- 比如事务A要查询字段a='1’的数据并进行更新(一共10条数据),此时事务B插入一条a为了1的数据,那么A会把这条数据也查出来
- 比如事务A要查询字段a='1’的数据并进行更新(一共10条数据),此时事务B插入一条a为了1的数据,那么A会把这条数据也查出来