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复习与总结(八)------缓存

相关推荐
xiaoye37083 分钟前
Spring如何处理线程并发问题
java·后端·spring
xiaoye37085 分钟前
Spring中使用自定义@Lock 注解解决线程并发问题
java·spring·wpf
XiaoLeisj5 分钟前
Android 权限管理实战:运行时申请、ActivityResultLauncher 与设置页授权
android·java·权限
FreeFly辉6 分钟前
VScode搭建javaDemo
java·vscode
知我Deja_Vu8 分钟前
【避坑指南】ConcurrentHashMap 并发操作的致命陷阱
java·开发语言
未来之窗软件服务9 分钟前
自己写算法(十)js加密UUID保护解密——东方仙盟化神期
java·javascript·算法·代码加密·东方仙盟算法
lang2015092810 分钟前
08 ByteBuddy 加载策略全解析:从“隔离”到“注入”,如何避开循环依赖的深坑?
java·byte buddy
沙漏无语15 分钟前
(一)TiDB简介
java·开发语言·tidb
Chan1617 分钟前
LeetCode 热题 100 | 链表
java·数据结构·spring boot·算法·leetcode·链表·java-ee
weixin_7042660518 分钟前
[特殊字符] Spring IOC/DI 核心知识点 CSDN 风格总结
java·后端·spring