1.不可重复读
如果一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值,那就意味着发生了不可重复读。
2.幻读
如果一个事务先根据某些条件查询出一些记录,之后另一个事务又向表中插入了符合这些条件的记录,原先的事务再次按照该条件查询时,能把另一个事务插入的记录也读出来,那就意味着发生了幻读。
不可重复读与幻读的区别:
从总的结果来看,似乎两者都表现为两次读取的结果不一致。但是如果从控制的角度来看,两者的区别就比较大: 1.对于不可重复读,只需要锁住满足条件的记录。 2.对于幻读,要锁住满足条件及相近的记录。
这里理解?
避免不可重复读需要锁住行,避免幻读则需要锁住表。不可重复读在于update和delete,幻读在于Insert.