数据库事物补充

并发引起问题

脏读:并发情况下,T1对数据进行修改后 未进行事物提交 。此时T2读取到T1未提交且已修改过得数据 称之为脏读。(更新)

不可重复读:对于两个事物T1和T2,假设T1读取一个字段时数字200,此时T2对该字段进行更改 更改后未100 。T1此时读取信息与第一次不同  我们称该现象未不可重复读。

幻读:对于事物T1和T2,T1读取表中数据时,此时T2向表中插入几条数据。T1再次读取时发现表数据增加 此种现象为幻读。(插入,删除)

事物隔离级别:

实例一:

T1和T2事物隔离级别都为:read uncommited

操作:T1第一次读取数据,并对其中一条进行修改 ,T1事物未提交。此时T2读取数据时,则数据为T1修改过未提交的数据。

             T1进行数据回滚,T2再读取数据。

现象:T2两次读取数据不一致。

体现的问题:脏读,不可重复读,幻读

案例二:

T1,T2事物隔离级别都设置为:read commited

操作:T1开启事务,并对其中数据进行修改。T2此时读取到T1修改前数据,当T2读取数据后。T1对修改过的数据进行事物提交。T2再读取表中数据为T1修改后数据

现象:T2两次读取数据不一致

体现问题: 可以避免脏读,但是存在幻读和不可重复读。

案例三

T1,T2事物隔离级别:repeatable read(默认隔离级别)

操作:同案例二

现象:未出现数据读取不一致问题 解决:脏读和不可重复读  。

案例四:

T1,T2事物隔离级别:Serializable(存在性能问题)

操作:同上

现象:完美避免 脏读,不可重复读,幻读

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值