wengyanbin

wengyanbin

V2EX 第 309848 号会员,加入于 2018-04-19 11:39:20 +08:00
今日活跃度排名 15940
wengyanbin 最近回复了
成长不一定是在工作上的,可以是在其他的事业上。
@rqxiao 没注意到行锁是同一个对象,能获取到行锁确实证明上个已经提交。我说的幻读的那种场景是例如会议室预定,两个人同时预定同个时间段的会议室,通过 select count()来判断是否有预定,在 rr 级别下,会出现两个事务并发进行,都先判断无人预定,然后就会产生写冲突。
@rqxiao 在这里事务一更新了 detail 然后去 count ,这个时候 count(0)=1 ,所以事务一没有更新表 a ;事务二跟事务一是并发的,count(0)也是等于 1 ,也没有更新表 a 。原因就是因为 count(0)这个地方是 ReadView ,两个事务读出来 count(0)都不等于 0.
@rqxiao 问题应该还是在 count 的地方,产生了一个快照读。但我个人分析还是觉得无论前面那一句查询加不加都会是快照读,也就是无论怎样都会有幻读的问题才对。不加 select * from a_detail where id =这一句事务反而能够正常跑是我不能理解。现在不知道从哪里分析问题了
@rqxiao 难道是在事务开始时候的 select * from a_detail where id =这一句影响了后面的 count ?就算去掉开始的语句我也觉得会有幻读的问题的,两个事务里面的 count 应该都是快照读才对。
当你是单身,住的地方没网没空调,你的主要活动也都还是上网打机,刚好这个时候公司周末要加班,公司配的电脑,显卡虽然一般但是其他配置很高,而且申报的是企业宽带,要是我我也去加班(摸鱼)。
78 天前
回复了 z139533325 创建的主题 职场话题 我有一个新创业项目设想!
大概印象是第三个,创作者中心,但还是需要用户授权。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 22:53 · PVG 06:53 · LAX 15:53 · JFK 18:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.