博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql中一级缓存二级缓存区别
阅读量:6265 次
发布时间:2019-06-22

本文共 703 字,大约阅读时间需要 2 分钟。

一级缓存:

  也称本地缓存,sqlSession级别的缓存。一级缓存是一直开启的;与数据库同一次会话期间查询到的数据会放在本地缓存中。

  如果需要获取相同的数据,直接从缓存中拿,不会再查数据库。

  一级缓存失效的四种情况:

      1.sqlSession不同。

      2.sqlSession相同,查询条件不同。因为缓存条件不同,缓存中还没有数据。

      3.sqlSession相同,在两次相同查询条件中间执行过增删改操作。(因为中间的增删改可能对缓存中数据进行修改,所以不能用)

      4.sqlSession相同,手动清空了一级缓存。

二级缓存:全局缓存;基于namespace级别的缓存。一个namespace对应一个二级缓存。

      工作机制:1.一个会话,查询一条数据,这个数据会被放在当前会话的一级缓存中。

           2,如果会话被关闭了,一级缓存中的数据会被保存带二级缓存。新的会话查询信息就会参照二级缓存。

           3.sqlSession ====> Employee====>employee

            sqlSession ====>DepartmentMapper=====>Department

            不同的namespace查出的数据会放在自己对应的缓存中。

           效果:查出的数据首先放在一级缓存中,只有一级缓存被关闭或者提交以后,一级缓存数据才会转移到二级缓存

转载于:https://www.cnblogs.com/aeolian/p/8469004.html

你可能感兴趣的文章
Linux磁盘管理、分区、扩展SWAP
查看>>
Go语言之Context
查看>>
vmstat详解
查看>>
关于“Unable to verify action class [xxx] exists at initialization”
查看>>
C# ?问号运算符知多少
查看>>
Python 数据类型
查看>>
ibatis:There is no statement named insertComment in this SqlMap
查看>>
用Echart创建简单的折线图
查看>>
kvm 静态迁移、动态迁移(基于nfs和后端镜像)
查看>>
Android 6.0以上运行权限及RxPermissions的使用
查看>>
bash之三 脚本练习以及算术运算
查看>>
hbase单机版安装
查看>>
BT5下metasploit升级报错解决方法
查看>>
zabbix监控默认的item key列表
查看>>
无线渗透笔记(三)-《穷举pin码攻击》
查看>>
Apache Prefork、Worker和Event三种MPM简单分析
查看>>
max-width
查看>>
shell脚本操作mysql数据库
查看>>
NEC获得曼谷城市铁路新线路的通信及监控系统订单
查看>>
H3命令基础命令
查看>>