Mybatis缓存机制

什么时候会用到缓存?

在执行过一次sqlSession会话查询后,Mybatis除了返回结果以外还会把查询到的结果存储到一级缓存中,当再次执行相同的查询时,Mybatis将不再进入数据库查,直接将结果从缓存中取出来。

Mybatis缓存

Mybatis缓存分为一级缓存和二级缓存,图示

一级缓存

通俗理解为每个sqlSession的缓存,也就是单个的sqlSession中的sql语句查询后,会将查询结果存入一级缓存中,可以理解为以每个sqlSession为单位进行一级缓存的划分

二级缓存

通俗理解为一个Mapper中每个sqlSession执行查询以后存入的地方就是二级缓存,但是注意并不是以Mapper为单位进行二级缓存的划分,而是以Mapper中的namespace为单位进行二级缓存的划分。

Mybatis查询机制

接下来我们再来捋一捋Mybatis的查询机制,当Mybatis执行sql查询语句时:

二级缓存==>一级缓存==>进入数据库查找

在执行查询时,Mybatis会依照上述顺序进行查询,只有当两个缓存中都找不到结果时才会进入数据库查询

优缺点

优点:可以作为优化数据查询的切入点

缺点:不论是一级缓存还是二级缓存,只要sqlSession会话一旦对数据库进行了修改操作(即删除,增加,修改),那么缓存中的结果将全部清除

Mybatis中默认开启一级缓存,关闭二级缓存,如需二级缓存,则要手动开启

开启方式请移步:

mybatis二级缓存配置_syslbjjly的博客-CSDN博客_mybatis二级缓存配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值