当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 来讨论下mysql_repeatable_isolation
帖子发表于 : 2010-12-03 11:08 

注册: 2008-11-08 18:34
帖子: 627
送出感谢: 0 次
接收感谢: 1
网上找到一些对Repeatable Read(可重复读)的解释,我大致翻译了一下:
代码:
The first time that a read is performed on a table results in that view of the table being preserved throughout that transaction.
在一个事务中,当第一次读一张表时,会立即被保存该表的一个视图。

Any changes made on that table committed by other transactions after that point are not seen.
在这之后,任何其他事务对这个表的改变本事务是看不到的。

However, if a different transaction commits a change between the time that you start your transaction and the time that you perform your first read on that table, you will see the changes made by that other transaction.
但是,如果一个不同的事务在你开启事务后第一次读之前提交了对该表的一个更新,你可以看到这些事务提交的改变。

大家最好看英文原文,这样原汁原味一些,如果我的翻译不准确请指出。
从以上描述中可以看出,repeatable隔离层级下,对于读操作确实保证多次read出来的结果是一致,但却看不出来如果防止第二类更新丢失的。

所谓第二类更新丢失:
代码:
              trsaction1             trsaction2
time1         read  i
time2                                        read i
time3         ++i并提交事务               
time4                                   ++i提交事务

这种情况下trsaction2的操作盖掉了 trsaction1 的操作,i被少+了一次

求解释repeatable隔离层级是如何实现防止第二类更新丢失的


_________________
气血鼓荡,身体发胀,偶飘上头,三时舒畅


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译