隔离级别
并发带来的问题
脏读(dirty read)
如果一个事务读到了另一个未提交事务修改过的数据,如果另一个事务发生了回滚,那么该数据就是脏数据。
不可重复读(non-repeatable read)
如果一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值,即一个事务里两次查询一个数据的结果不一样。。
幻读(phantom read)
如果一个事务先根据某些条件查询出一些记录,之后另一个事务又向表中插入了符合这些条件的记录,原先的事务再次按照该条件查询时,能把另一个事务插入的记录也读出来。
注意
脏读侧重是未提交事务的数据。
而不可重复读和幻读都是读到了已提交的数据,但不可重复读重点在于update和delete,而幻读的重点在于insert。
四种隔离级别
实现原理
MVCC
首先,在介绍实现原理之前先简单的介绍一下MyS