Mybatis缓存

一级缓存:默认开启

1,为什么要一级缓存 

减少对数据库的访问压力

2,一级缓存有什么问题?

public void query(){

SqlSesion sqlsesion;

sqlsession.selectOne();

//在这之间被update,下面会出现脏数据

sqlsession.selectOne();命中缓存 内存

}

为什么还这么设计?这样写的概率很低    


二级缓存

默认是关闭,也不建议使用,一般用Redis第三方实现

1.Scope:基于namespace

2.怎么验证二级缓存的存在?

3.二级缓存有什么问题?

a容易出现脏数据(关联查询A,B 在A的mapper中修改B数据,B中的二级缓存就是脏数据)

b全部失效

更新策略update,delete 会删除所有的二级缓存

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容