数据库事务隔离级别

数据库并发访问

当多个事务同时对数据库进行操作时,就会产生一些并发现象,按严重程度由高到低列举如下:
(假设有T1和T2两个数据库事务)

  1. 丢失更新:
    当T1和T2同时对一份数据进行更新的时候,T1先执行了更新但未提交,此时T2又进行了更新,然后T1执行了提交,T2执行提交。此时T1所做的所有操作均已丢失。

  2. 脏读:
    T1更新了一条数据但未提交,T2对这条数据执行了查询,此时T2可以看到T1未提交的更新。但此时T1突然回滚了,所有更新都失效,那么T2获取的就全部都是脏数据(不存在的数据)。

  3. 不可重复读:
    T1对某条件范围内的数据执行查询,T2此时对同样条件范围的数据执行了更新操作,此时T1再次执行相同的查询,那么由于T2的操作导致T1看到的数据与上一次出现了不同。T1无法在同一事务中查看同一份数据(允许更新)。

  4. 幻象读:
    T1对某条件范围内的数据执行查询,T2此时对同样条件范围的数据执行了插入操作,此时T1再次执行相同的查询,那么由于T2的操作导致T1看到的数据比上一次多出了一条。T1无法在同一事务中查看同一份数
    据(允许插入)。



数据库的事务隔离级别

  1. 读取未提交
    不允许:丢失更新
    允许:脏读、不可重复读、幻象读
  2. 读取已提交
    不允许:丢失更新、脏读
    允许:不可重复读、幻象读

  3. 可重复读:
    不允许:丢失更新、脏读、不可重复读
    允许:幻象读

  4. 串行化:
    不允许:丢失更新、脏读、不可重复读、幻象读
    允许:(串行化是最高事务隔离级别,强制所有的事务串行执行。)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值