2.第二个方面,MySQL 中,A 事务在执行过程中,要多次使用某条记录,我怕它两次访问查出来结果不一样,反正都是同一条记录,我咋不只查一次,一直就用第一次查出来的。
--------
比如飞机选座,一个 A 用户先查询座位图,花 10 分钟做决定,选了一个位置 X ,提交。在这 10 分钟内,B 用户查询座位图,选 X ,提交。这个时候如果 A 只查一次然后提交(也就是不可重复读),那 A 和 B 会选同一个座位(冲突)。但实际上在可重复读级别下会再读一次,然后 A 事务提交失败的。
@demoshengxw 认真读了你的例子,我感觉在这个例子中也没有什么数据需要获取两次呀,中途插入了啥也不会有影响吧。把获取对账需要的数据当作事务 A, 它执行两个操作,1 获取用户两个月的余额快照记录,2 获取用户本月账单明细
select *
from account where userId = 10 and time > 上个月;
select *
from order where userId = 0 and time >= 这个月 1 号;