四种并发异常,四种相应的隔离级别--数据库事务的复习

      印象中这是在博客里第三次重提数据库事务的隔离级别了。这一块内容有一点绕,当时弄明白了,过一段时间又会忘记。我觉得掌握数据库事务隔离级别的窍门在于:罗列出事务在并发时会发生哪些异常情况,什么样的隔离级别会杜绝这种异常情况的发生。下面就按照这个思路把数据库事务隔离级别再复习一遍。

      第一种可能出现的异常情况:丢失更新(Lost Update)

数据库事务隔离级别:Read Uncommitted可以避免此类异常

      第二种可能出现的异常情况:脏读(Dirty Read)


 

数据库事务隔离级别:Read Committed可以避免此类异常

      第三种可能出现的异常情况:不可重复读(Unrepeatable Read )


数据库事务隔离级别:Reaptalble Read可以避免此类异常

      第四种可能出现的异常情况:幻象读(Phantom Read)


数据库事务隔离级别:Serializable可以避免此类异常

 

下表是各隔离级别对各种异常的控制能力


LU丢失更新 DR脏读 NRR非重复读 SLU二类丢失更新 PR幻像读
未提交读 RU Y Y Y Y Y
提交读 RC N N Y Y Y
可重复读 RR N N N N Y
串行读 S N N N N Y

你可能感兴趣的:(四种并发异常,四种相应的隔离级别--数据库事务的复习)