Mybatis的二级缓存

Mybatis 的两种缓存机制

一级缓存(本地缓存):指的是Session级别的缓存,当调用同一个SqlSession去访问数据时,每一次读取的数据都会存储在当前SqlSession中,下一次调用不需要再次从数据库读取,直接从一级缓存中读取即可。
二级缓存(分布式缓存):指的是Mapper级别的缓存,多个SqlSession可以共享缓存,同一个服务器所有实例之间甚至跨服务器共享。

二者区别

一、缓存范围
二、配置:一级缓存不需要配置,二级缓存需要在 MyBatis 配置文件中或通过注解显式开启,并且需要配置相应的缓存实现。
三、性能差异
一级缓存由于其本地性,访问速度非常快,对于减少数据库访问次数和提升性能有显著效果。
二级缓存虽然访问速度可能不如一级缓存快,但由于其可以跨多个 Session 共享,对于减少数据库的负载和提升应用性能也有很大帮助。
四、适用场景
一级缓存适用于单个请求内需要多次查询相同数据的场景。
二级缓存适用于多个请求或多个用户之间需要共享数据的场景,如读取远大于写入的操作。
五、一致性和并发问题
一级缓存由于是本地的,不存在并发访问的问题。
二级缓存由于是跨 Session 的,需要处理并发访问和数据一致性的问题,可能需要引入额外的同步机制。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值