- Mybatis 缓存存在的问题
- 一级缓存
- 存在问
- 二级缓存
存在问默认开启,每个salsession 同一条查询指令走缓存更新操作刷新缓存
二级缓存2个sqlSession 并发进行时
sql1 查询 2次 user 数据
sql2 在sql1 第一次查询后,更新 user
sql1 第二次查询就时脏数据
二级缓存时针对每个单独mapper生成的,namespace。在遇到多表查询的时候,无法感知其他的namespace中的语句对多表查询中,进行修改,引发脏数据问题。
selet * from user left join user1 ....
二级缓存时本地缓存,在分布式环境下必然会出现脏数据。



