mybatis一级缓存和InnoDB一致性非锁定读

突然发现mybatis的一级缓存和InnoDB一致性非锁定读不谋而合啊

之前一直觉得 你开启事务的情况下 查询之后接下来如果继续查询 中间没有增删改,那你是查不到其他事务的修改的结果的。

现在发现InnoDB一致性非锁定也是这样啊 你开启事务查询会得到应该快照 所以mybatis的一级缓存不会带来额外的问题,因为就算你不缓存你查询还是查不到新的。

不开启事务就更加没这个问题了。

那怎么测试是一级缓存的原因还是InnoDB一致性非锁定读的问题?

将隔离级别设置成读已提交,开启事务,这样不会读取快照,然后看看是不是还是查询旧的 如果是,那就是一级缓存。

在sequel pro等工具或者用原生jdbc接口, 开启多个事务模拟,查询到旧的就是一致性非锁定读

https://juejin.im/post/5bf168aae51d453b8e54442c

你可能感兴趣的:(mysql)