一级缓存默认是打开的,二级缓存需要配置才可以开启。那么我们必须思考一个问题,在什么情况下才有必要去开启二级缓存?

1、因为所有的增删改都会刷新二级缓存,导致二级缓存失效,所以适合在查询为主的应用中使用,比如历史交易、历史订单的查询。否则缓存就失去了意义。

2、如果多个namespace 中有针对于同一个表的操作,比如Blog 表,如果在一个namespace 中刷新了缓存,另一个namespace 中没有刷新,就会出现读到脏数据的情况。所以,推荐在一个Mapper 里面只操作单表的情况使用。

思考:如果要让多个namespace 共享一个二级缓存,应该怎么做?

跨namespace 的缓存共享的问题,可以使用<cache-ref>来解决:

<cache-ref namespace="com.leon.crud.dao.DepartmentMapper" />

cache-ref 代表引用别的命名空间的Cache 配置,两个命名空间的操作使用的是同一个Cache。在关联的表比较少,或者按照业务可以对表进行分组的时候可以使用。

注意:在这种情况下,多个Mapper 的操作都会引起缓存刷新,缓存的意义已经不大了。

MyBatis 缓存详解-什么时候开启二级缓存?相关推荐

  1. .net html5页面缓存,详解HTML5中的manifest缓存使用

    起源html5之前的网页,都是无连接,必须联网才能访问,这其实也是web的特色,这其实对于PC是时代问题并不大,但到了移动互联网时代,设备终端位置不再固定,依赖无线信号,网络的可靠性变得降低,比如坐在 ...

  2. Mybatis二级缓存详解

    Mybatis二级缓存 Mybatis相关全览 一.简介 二.一级缓存 1.入口 2.演示 案例一: 案例二: 3.总结 三.二级缓存 1.入口 2.如何开启二级缓存 cache-ref配置 cach ...

  3. MyBatis 一级缓存二级缓存详解

    相关内容: 架构师系列内容:架构师学习笔记(持续更新) MyBatis 缓存详解 cache 缓存 缓存是一般的ORM 框架都会提供的功能,目的就是提升查询的效率和减少数据库的压力.跟Hibernat ...

  4. MyBatis 缓存详解-二级缓存介绍

    二级缓存是用来解决一级缓存不能跨会话共享的问题的,范围是namespace 级别的,可以被多个SqlSession 共享(只要是同一个接口里面的相同方法,都可以共享),生命周期和应用同步. 思考一个问 ...

  5. Mybatis的一级缓存和二级缓存详解

    注:本笔记是根据尚硅谷的MyBatis视频记录的 对于任何一个持久层框架,都有缓存机制:缓存在电脑中有一块真实的存储空间(https://baike.baidu.com/item/%E7%BC%93% ...

  6. MyBatis中一级缓存和二级缓存详解

    缓存的作用 首先缓存的合理使用是优化中最常见的,将从数据库中查询出来的数据放入缓存中,下次使用时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据的压力,同时提高系统性能. 为什么需 ...

  7. MyBatis 缓存详解-二级缓存验证

    (验证二级缓存需要先开启二级缓存) 1.事务不提交,二级缓存不存在 BlogMapper mapper1 = session1.getMapper(BlogMapper.class); System. ...

  8. Mybatis中的缓存详解

    本文来说下Mybatis中的缓存 文章目录 Mybatis是什么 Mybatis的一级缓存 Mybatis的二级缓存 本文小结 Mybatis是什么 Mybatis是一个半自动 ORM(对象关系映射) ...

  9. mybatis开启二级缓存和懒加载,类型别名,类都简称

    SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...

最新文章

  1. Java 之String、StringBuffer 和 StringBuilder 三者区别介绍
  2. 图说子图同构算法——VF2算法(一)
  3. 信息安全系统设计基础第三周学习总结
  4. Android之Handler有感(二)
  5. [转]为什么我们不用软件工程?软件工程能帮多大忙?
  6. GTC CHINA 2019 | 黄仁勋发表主题演讲,多项创新技术与合作全面助力 AI 加速落地
  7. 基本农田卫星地图查询_发现谷歌地图替代网站,卫星地图街景功能都能用
  8. 树形结构 —— 树与二叉树 —— 树的中心
  9. spring事务和mysql的隔离级别
  10. HTML5新增的表单元素有哪些?
  11. JAVA泛型详解2 转载
  12. web项目在iis配置好后不能正确访问问题集锦,以及IIS常规设置
  13. ABAQUS仿真软件经典案例——水滴入水分析
  14. 激光雷达--C16镭神16线三维激光雷达介绍
  15. PTA 数据结构与算法题目集(中文)7-38 寻找大富翁(25 分)快排或堆排序
  16. iOS NSLayoutConstraint priority
  17. linux判断三个数大小程序,几个shell程序设计小知识(shell常识部分)
  18. 计算机开机按f1,开机要按F1怎么解决?电脑开机不按F1进去系统的方法
  19. MOOC-大型开放式网络课程massive open online courses
  20. 如何在 FlowUs、Notion 等笔记软件中进行时间管理?

热门文章

  1. docker+httpd的安装
  2. 第三次作业(词频统计及其效能分析)
  3. C 实现基于角色的权限系统
  4. ASP.NET MVC easyUI-datagrid 分页
  5. 十四种Java开发工具点评
  6. Flutter 系列文章:Flutter Icon 控件介绍
  7. Unity3D的Time.timeScale
  8. CSS知识总结(五)
  9. 阿里云容器服务体验: 部署 ShellPays 条码支付整合服务平台 -- (四)结案陈词
  10. F5 配置手册 -F5 BIG-IP 10.1-3-配置-网络