-
一级缓存
- 默认开启
- 在同一个sqlSession会话中,多次执行相同sql查询语句,只有第一次查询连接数据库,之后的查询直接读取第一次查询的缓存数据
- 同一会话中的增删改操作会刷新缓存
- 不同会话的增删改操作也会刷新缓存
-
二级缓存
- 默认关闭
- 开启后
- 在不同sqlSession会话中,多次执行相同sql查询语句,只有第一次查询连接数据库,之后的查询直接读取第一次查询的缓存数据
- Mapper.xml中,insert delete update标签上的 flushCache属性
- true 缓存刷新
- false 缓存不刷新
- cache标签的flushInterval="ms"属性,刷新周期到了,自动刷新缓存
-
二级缓存开启设置
1.Mapper.xml中添加cache标签
<cache
readOnly="true"
flushInterval="60000"
></cache>
- 在具体的方法标签中添加flushCache属性,这个要根据具体情况判断是否需要刷新二级缓存
<!--
flushCache
true - 默认 执行该语句时,会刷新二级缓存
false - 执行该语句时,不会刷新二级缓存
-->
<delete id="delete" flushCache="false">
delete from user where user_id = #{userId}
</delete>