java项目性能优化(MyBatis中开启查询缓存及flushCache与useCache的使用)

在java项目中,如果需要大量的DB查询,导致缓存过多,项目运行缓慢,可以设置在select查询时,添加二级缓存的清空。

如果没有去配置flushCache、useCache,那么默认是启用缓存的。

1,flushCache默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。

2,useCache默认为true,表示会将本条语句的结果进行二级缓存。

在insert、update、delete语句时: flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。 useCache属性在该情况下没有。update 的时候如果 flushCache="false",则当你更新后,查询的数据数据还是老的数据。

在Mapper的具体方法下设置对二级缓存的访问意愿:

复制代码
<select id="save" parameterType="XX" flushCache="true" useCache="false"> </select>

同时设置 flushCache="true" useCache="false"

那么就是,第一次查询后,清空二级缓存,并且以后都不会在缓存中保存数据。

参考资料:

[mybatis]缓存_缓存有关的设置以及属性

MyBatis中开启查询缓存及flushCache与useCache的使用

mybatis复习与总结(八)------缓存

相关推荐
逍遥德10 分钟前
skill模板-基于java maven项目
java·人工智能·自然语言处理·maven
XiYang-DING20 分钟前
【Java EE】单例模式
java·单例模式·java-ee
志飞1 小时前
springboot配置可持久化本地缓存ehcache
java·spring boot·缓存·ehcache·ehcache持久化
itzixiao1 小时前
L1-051 打折(5分)[java][python]
java·python·算法
それども1 小时前
Spring Bean 注入的优先级顺序
java·数据库·sql·spring
ID_180079054731 小时前
Python 实现京东商品详情 API 数据准确性校验(极简可直接用)
java·前端·python
贾斯汀玛尔斯1 小时前
每天学一个算法--Aho–Corasick 自动机
java·linux·算法
LF男男1 小时前
Action- C# 内置的委托类型
java·开发语言·c#
练习时长一年1 小时前
@NotEmpty注解引发的报错
java·服务器·前端
西海天际蔚蓝2 小时前
用AI写的一个包含web和小程序的个人简历
java