首页 > 其他分享 >mybatis 缓存机制

mybatis 缓存机制

时间:2023-03-10 13:55:53浏览次数:45  
标签:缓存 数据库 namespace 查询 二级缓存 mybatis 机制

# 1、mybatis的缓存--减少和数据库的交互降低数据库压力
# 2、缓存机制原理
第一次sql查询的时候将结果缓存(保存内存中),下一次sql查询与第一次相同,如果缓存有数据直接从缓存取。
# 3、
## 一级缓存 SqlSession
注:使用 SqlSession.clearCache( ) 方法可以强制清除一级缓存
## 二级缓存 Mapper
cacheEnabled
开启二级缓存之后: 二级缓存>一级缓存>数据库

1、缓存是以namespace为单位的,不同namespace下的操作互不影响。
2、insert,update,delete操作会清空所在namespace下的全部缓存。
3、通常使用MyBatis Generator 生成的代码中,都是各个表独立的,每个表都有自己的namespace。
4、多表操作一定不要使用二级缓存,因为多表操作进行更新操作,一定会产生脏数据。

mybatis缓存导致的Oracle按序列自增的id重复

<!-- 
flushCache: 默认FALSE。不会清空本地缓存和二级缓存
useCache: 默认TRUE。本条语句结果进行二级缓存
-->
<select id="save" parameterType="XXXXXEO" flushCache="true" useCache="false">
    ……

</select>

参考博客:
https://www.cnblogs.com/zkatr/p/15349387.html#:~:text=Mybatis 缓存机制原理是将第一次从数据库 SQL,查询的结果数据保存到缓存(内存中),当下一次 SQL 查询和第一次相同,如果缓存中有数据则直接获取,而不用再从数据库获取,从而减少数据库访问频率,大大提升数据库性能。
https://www.cnblogs.com/taiyanhong/p/6999366.html

标签:缓存,数据库,namespace,查询,二级缓存,mybatis,机制
From: https://www.cnblogs.com/wuzimeimei/p/17203105.html

相关文章