数据库事务隔离级别

1. 数据库并发操作是会有那些异常情形

   1)Lost update: 
        两个事务都同时更新一行数据,但是第二个事务却中途失败退出, 导致对数据的两个修改都失效了。

    2)Dirty Reads: 
        一个事务开始读取了某行数据,但是另外一个事务已经更新了此数据但没有能够及时提交。这是相当危险的,因为很可能所有的操作 
        都被回滚。

    3)Non-repeatable Reads: 
       一个事务对同一行数据重复读取两次,但是却得到了不同的结果。 

    4)Second lost updates problem: 
       无法重复读取的特例。有两个并发事务同时读取同一行数据,然后其中一个对它进行修改提交,而另一个也进行了修改提交。这就会造成 
       第一次写操作失效。

   5)Phantom Reads:

2. 数据库的隔离级别

    1)Read Uncommitted:读未提交

        即使一个更新语句没有提交,但是别的事务读到这个改变

    2)Read Committed:读已提交

       意思就是语句提交以后即执行了COMMIT以后别的事务就能读到这个改变.   

     3) Repeatable Read:可以重复读

        在同一个事务里面先后执行同一个查询语句的时候,得到的结果是一样的.

      4) Serializable:序列化

         事务执行的时候不允许别的事务并发执行.

 3. 各种隔离级别对各种异常的控制能力

       


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 N

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值