理解事务隔离级别

13 篇文章 0 订阅
11 篇文章 0 订阅
[url]http://zhuyufufu.iteye.com/blog/1986857[/url]

上面这篇文章介绍了数据库事务的相关知识。

其中说明了数据库事务有四个隔离级别:[b]read uncommit / read commit / repeatable read / serializable

[/b]中文的叫法为:[b] 未授权读(读未提交)/ 授权读(读提交)/ 可重复读 / 序列化[/b]

不论英文或中文的叫法都不大好记忆。那有没有直指本质,容易记忆的方法呢?

下面介绍一下我的理解:

以两个事务为例来说明问题。[b]事务隔离就是对这两个事务的读写并发操作做出限制。[/b]
从数学的角度来看这两个事务的读写有四种排列组合方式: 写写、写读、读写、读读。

[b]那四种隔离级别与这四种排列组合方式是否有联系呢?答案是有。[/b]

[b]未授权读就是对两个事务写写的并发控制,授权读就是对写读的控制,可重复度就是对读写的控制,序列化就是对读读的控制。[/b]

这里有个隐含的前置条件,写的操作权重是大于读的,也就是说可以写基本上暗含了可以读。

下面从两个事务读写排列组合的角度解释一下事务隔离级别解决了的问题:

[b]写写对应数据库数据更新丢失的问题(写的同时在写)[/b]

[b]写读对应脏读(写的同时在读,之后写被撤销)[/b]

[b]读写对应不可重复读(读了之后又被修改的数据)[/b]

[b]读读对应幽灵数据(读了之后被删除的数据)[/b]


这样的解释是否更好理解了呢?

对于我这样是比较好记忆的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值