同一个事务中,不能百分百获得上一个sql提交的数据更新

TiDB和MySQL在RR隔离级别下,行为还是有一些差异的,TiDB把SI近似认为成RR。在MySQL中,START TRANSACTION后不会立即创建快照,而是等第一条SQL执行的时候才创建快照。在TiDB中,START TRANSACTION就会立即创建一致性快照,等价于MySQL中的START TRANSACTION WITH CONSISTENT SNAPSHOT。所以在你的场景中,需要排查一下sum操作是什么时候开启事务的,会不会是因为TiDB中提前创建了这个快照,导致sum看不见更新后的数据

1 个赞