脏读、不可重复读、幻读
脏读,事务T1第二次读取时,读到了事务T2未提交的数据,这时,T2回滚,T1读取到的是脏数据。
不可重复读,事务T1第二次读取时,读到了事务T2已提交的数据,T1前后两次读取的数据内容不一致。
不可重复读和脏读的区别:
-
脏读是读取到未提交的数据,而不可重复读,读到的是已经提交的数据。
-
脏读违反了数据库事务隔离性,不可重复读违反的是事务一致性的要求。
幻读,与不可重复读一样,也是读取到了事务T2已提交的数据。
幻读与不可重复读的区别:
-
不可重复读,事务T1第二次读取与第一次读取,数据内容不一致。
-
幻读,事务T1第二次读取与第一次读取,数据总量不一致。