`

脏读、幻读、不可重复读

 
阅读更多

脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。

不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。

幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。

在MySQL中,实现了这四种隔离级别,分别有可能产生问题如下所示:

 

所谓脏读就是读到了另一个事务rollback之前的数据,这样读出的数据是不对的。

所谓不可重复读是指读到了另一个事务更新过的数据(已经commit的),这样在这个事务中两次读到的数据就不同了。

所谓幻读是指读到了另一个事务插入的数据,这样这个事务中两次读到的数据行数会不同。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics