锁定老帖子 主题:数据库事务隔离级别及误读的简单介绍
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2012-08-23
最后修改:2012-08-23
先说点废话,这篇文章的第一段是2010年写的,因为包括懒在内的各种原因,一直没写完,今天第一次开始night shift.没啥事。把这个翻了出来。唉..... 本来一直想像coolshell那样。 等水平够了,发布的都是精品。 今天一想,大牛们都是靠积累出来的,皓哥也不是一生下来对编程有那么多见解。 先积累吧。 本来想写一些其它的,看着既然是10年的残篇,不如就把他继续写下去吧,无论文笔还是内容都无爆点,不过就把这当成一个开始吧。 ——————————————我是可爱的分割线————————————————————————— 强烈为想学习oracle的朋友推荐一本书:oracle9i&10g编程艺术:深入数据库体系架构 2.一致性(Consistency):事务无论成败不能破坏业务规则,必须使用系统从一个一致性状态到另一个一致性状态。例:银行转帐,A向B转1000元,事务完成之后,必须是A-1000 B+1000或AB余额不变,既事务前后都满足转帐规则 -- 双方余额之和不变。 3.隔离性(Isolation) :每个事务必须独立于其它事务执行。 4.持久性(Durability) :执行结果的值/状态持久。
这种隔离级别目前看来仍然是不被接受的,但是不会造成太多阻塞(相比后两种),效率也算较好。Oracle默认就是采用的这隔离级别,只过Oracle还在此基础上增加了[多版本控制]的机制(ps:这是一个天才的机制!),这让Oracle能尽可能的高效率,并且能保持事务间,数据的独立性。 感兴趣的朋友可以去看看, 就算不用oracle,当成一种解决方案来了解一下也不错。 [可重复读]的[幻像读]演示
先说说[可重复读]隔离级别,在这种级别下,所有对行进行查询操作,都会给查询到的行上增加一下"共享读锁",锁这种锁锁到的行可以被其它事务查询,不会阻塞,但是如果是写操作的话,就必须要等到该锁释放后才能进行写入。如果将这种级别代入到之前的例子中,就不会出来不可重复读的问题。已锁数据无法修改。 但是[可重复读]隔离级别也有问题,他只会锁他所读到的行,不能控制新行的插入。上面的例子中,假设第一次算总工资时,人员是100人,还在计算员工总数时,就会是101人。这也会导致数据出现问题。一般我们叫这是幻像读。 串行读 这个没有什么可讲,所有的操作都会在一个队列中,一个一个的执行。是最严格的隔离级别。但是会造成极大的阻塞,所以在企业级系统中都不会用到,单用户的系统倒可以试试。 ps:上面说的是标准的四种隔离级别,不同数据库在实现的时候都会有些自己独特的地方,比如oracle就用的多版本控制,还额外提供了read-only隔离级别。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2013-01-13
写的蛮清晰的,楼主,还有例子好理解
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
浏览 3025 次