【MyBatis】缓存机制
来源:互联网 发布:长沙华为网络培训 编辑:程序博客网 时间:2024/05/15 18:12
引言
MyBatis查询缓存分为一级缓存和二级缓存
一级缓存是SQLSession级别的缓存
二级缓存是mapper级别的缓存,二级缓存多个SqlSession共享
架构图
一级缓存(SqlSession级别)
当在同一个SqlSession中执行两次相同的SQL语句时,第一次查询到的数据会写入缓存,第二次查询会直接从缓存中直接获取数据
当一个SqlSession结束后,该SqlSession中的一级缓存则消失
当SQLSession进行了DML操作并提交到了数据库,则清空一级缓存
缓存流程:
1.对于某个查询,根据statementId,params,rowBounds来构建一个key值;
2.根据这个key值去缓存Cache中取出对应的key值存储的缓存结果;
3.. 如果返回结果为空,则去数据库查询,得到结果后把key和结果作为KV对存储到Cache中;
二级缓存(mapper级别)
多个SqlSession共用一个mapper,作用域是mapper的同一个namespace
当第二次查询使用相同的sql语句,参数也相同,则会从缓存中获取数据
MyBatis的二级缓存的选择方案
1.MyBatis自身提供的缓存实现;
2. 用户自定义的Cache接口实现;
3.跟第三方内存缓存库的集成;
小结
如果MyBatis使用了二级缓存,Mapper和select语句也配置使用了二级缓存,那么在执行select查询的时候,MyBatis会先从二级缓存中取输入,然后是一级缓存
MyBatis通过缓存机制减轻数据压力,提高数据库性能
阅读全文
0 0
- MyBatis 缓存机制
- Mybatis缓存机制
- mybatis缓存机制
- Mybatis缓存机制
- mybatis缓存机制
- mybatis缓存机制
- Mybatis缓存机制
- mybatis的缓存机制
- Mybatis缓存机制
- mybatis缓存机制
- mybatis缓存机制
- Mybatis-缓存机制
- MyBatis浅谈缓存机制
- MyBatis 缓存机制
- MyBatis 缓存机制
- MyBatis缓存机制
- Mybatis查询缓存机制
- mybatis的缓存机制
- MySQL性能优化(一)
- 疫情控制
- Windows 7 64bit和Visual Studio 2010下安装及使用Zlib
- shiro学习:shiro实现授权
- JRiver Media Center 23(多媒体播放工具)官方正式版64位V23.0.73下载 | jriver media center 破解版
- 【MyBatis】缓存机制
- MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
- 1、简单的登录界面(1)
- Nginx安装和配置
- ubuntu ap-get install python2.7_minimal error
- java初入多线程10
- linux入门笔记GDB调试
- Java1.8与MySQL5.0搭建数据库连接的一些过程
- OpenGL关于glStencilFuncSeparate()和glStencilFunc()函数的区别