Mybatis 缓存使用心得

本文分享了Mybatis缓存的使用心得,探讨了一级缓存的局限性,并通过实验展示了二级缓存的开启与效果。在实验中,未开启二级缓存时,查询性能较低,每次请求都直接访问数据库。开启二级缓存后,性能提升,但需要注意insert、update、delete操作会刷新缓存,可能导致脏数据问题。建议仅在单表操作时使用Mybatis的二级缓存,复杂场景下应考虑自定义缓存解决方案。
摘要由CSDN通过智能技术生成

Mybatis 缓存使用心得

1.缓存知识点

  1. 对于每个对数据库的操作(在web场景中就是每次调用Mapper的方法)都会启用一个新的sqlSession,用完即删,如果几个操作间存在事务,那么他们将公用一个sqlSession,在全部都执行完后,提交,关闭sqlSession,
  2. sqlSession是线程隔离的,也就是如果在一个事务中使用多个线程进行多个操作,那么也就使用多个sqlSession(原理:每个线程内有一个sqlsessionHolder的ThreadLocal变量)。
  3. 一级缓存的作用域是SqlSession,那么基本上来说就是没有任何作用的。
  4. 如果想要有效缓存查询结果,保证下次该查询不会再去直接访问数据库,我们需要开启二级缓存。

2.实验(数据库连接池最大线程数 10)

2.1首先,我们不开启二级缓存去查询景点信息。

image-20211229085932965

通过JMeter进行性化测试可以看到性能很低,通过Mybatis的日志我们也可以看每次请求都开启了新的SqlSession去直接操作数据库。

2.2开启二级缓存
配置

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值