记得点击"欢少的成长之路",设为星标⭐
后台点击【联系我】,申请加入优质技术学习社群
(相关资料图)
大家好,我是Leo。
好久没有输出技术理论了,实在是忙。最近主要以设计系统为主了。面试刚好又倒在了Mybatis原理。今天来聊一下Mybatis的一级缓存,二级缓存。
Mybatis缓存是内存中的数据,主要是对数据库查询结果的保存,使用缓存的好处是避免频繁与数据库进行交互,提升查询的响应速度。
数据库缓存扩展聊到Mybatis缓存。我们可以扩展聊一下MySQL缓存。MySQL缓存其实与Mybatis类似,在查询的时候都会先通过查询缓存检查一下所需的数据是否存在缓存中,如果存在缓存的话就会直接返回,这样就达到了避免频繁与数据库进行交互的目的。
数据查询流程图
回归正题在学习过程中,希望大家把知识点串起来学习,这样有助力更好的学习与理解
Mybatis 缓存主要分一级缓存和二级缓存。
一级缓存一级缓存也称为本地缓存(SqlSession),属于二级缓存的子集。与数据库同一次会话期间查询到的数据会放在本地缓存中。以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查询数据库。
一级缓存的缓存数据只在SqlSession内有效,它的范围有两种SESSION和STATEMENT,默认是SESSION。如果不想使用一级缓存,可以通过下列代码配置
使用SESSION,这样每次执行完一个Mapper中的语句都会将一级缓存清除。二级缓存
一级缓存作用域太低,如果多个SqlSession需要共享缓存,则就需要开启二级缓存。二级缓存也叫全局缓存,二级缓存是基于namespace级别的缓存,一个namespace对应一个二级缓存。二级缓存需要我们手动开启。
我们可以通过在 mybatis-config 文件中配置开启二级缓存。
查询顺序
Mybatis的查询顺序如下图
Mybatis查询顺序
我们可以根据上图大概介绍一下B的流程。
首先创建SqlSession会话查询一条数据,这条数据就会被放到当前会话的一级缓存中。如果当前SqlSession去执行commit操作(插入,更新,删除),那么就会清空SqlSession中的一级缓存,保证缓存中始终保存的是最新的数据,避免脏读。这个时候并不会把一级缓存更新到二级缓存,这一步操作是在关闭SqlSession时触发的。新会话查询信息,就会从二级缓存中获取数据。注意:两次查询必须在同一个SqlSession中完成,否则将不会走Mybatis的一级缓存
相反,我们在使用Mybatis作为我们的持久层框架时,也就是上图的A流程
开启二级缓存后,会使用 CachingExecutor 装饰 Executor进入一级缓存查询流程前先在CachingExecutor进行二级缓存的查询如果二级缓存没有命中的话会到一级缓存中查询最后一级缓存没有的话才会去与数据库进行查询交互生命周期二级缓存开启后,同一个 namespace 下的所有操作语句,都影响着同一个 Cache,即二级缓存被多个 SqlSession 共享,是一个全局的变量。
MyBatis 是默认关闭二级缓存的,因为对于增删改操作频繁的话,那么二级缓存形同虚设,每次都会被清空缓存。
一级缓存没有过期时间,只有生命周期。MyBatis在开启一个数据库会话时,会创建一个新的SqlSession对象,SqlSession对象中会有一个Executor对象,Executor对象中持有一个PerpetualCache对象。当会话结束时,SqlSession对象及其内部的Executor对象还有PerpetualCache对象也一并释放掉。
二级缓存有过期时间,但没有后台线程进行检测。需要注意的是,并不是key-value的过期时间,而是这个cache的过期时间,是flushInterval,意味着整个清空缓存cache,所以不需要后台线程去定时检测。每当存取数据的时候,都有检测一下cache的生命时间,默认是1小时,如果这个cache存活了一个小时,那么将整个清空一下。
-
环球观点:聊聊Mybatis的缓存记得点击 "欢少的成长之路 ",设为星标⭐后台点击【联系我】,申请加入优质技术学习社群大家好,我是Leo。好久没有输出技术理论了,实在是...
-
世界热点评!步步高股份转让仍处筹划阶段,股票继续停牌乐居财经兰兰1月10日,步步高(002251 SZ)发布公告称,公司预计无法在1月11日(星期三)上午开市起复牌,公司向深圳证券交易所申请股票自2023年1月1
-
环球头条:黑牡丹董秘回复:股票二级市场价格存在一定的不确定性,不仅仅受到公司业绩的影响黑牡丹(600510)01月10日在投资者关系平台上答复了投资者关心的问题。
-
热点评!宜人贷网贷逾期7个月多久上征信系统网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
-
环球消息!国际锐评丨美方一些人越鼓噪“断链” 外资越“做多”中国“全球投资者渴望回到中国做生意。”英国《金融时报》近日援引投资机构专家的观点进行报道。8日起,中国疫情防控进入新阶段,给全球投资者...
-
全球热推荐:小鲨易贷逾期十年多久会上征信网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
-
热消息:富宝贷借款逾期53年还不起征信会怎么样网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
-
【天天播资讯】八级工伤赔偿标准和工伤多少工资可以一次性工伤医疗补助金和伤残就业补助金合并计算,标准为解除或者终止劳动关系时5至30个月的本市上一年度职工月平均工资。其中:五级30个月,六
-
环球热推荐:宣布降价后,特斯拉 Model Y 国内交付时间延长至 2-5 周IT之家1月9日消息,今日特斯拉中国官网显示,ModelY后轮驱动版以及长续航版的国内交付时长延长到2-5周,ModelY高性能版的交付时长仍为1-4周。
-
环球速递!测绘东路摊贩占道交通不便 碑林城管:要求商贩进入早市区域,加强巡查2022年12月,有市民向华商报反映,西安市碑林区测绘东路每天早上小摊小贩占道经营严重,占用两个车道,交通不便。随后,华商报向西安市碑林区
-
可惜错过最近因为一些事情引发了我的一个思考,到底如何才能抓住机会?比如,10年前如何才能抓住淘宝的红利机会?7年前如何才能抓住公众号的红利机会?
-
渤健(BIIB.US)合作开发的阿尔茨海默病新药获FDA批准亚汇网获悉,周五,FDA加速批准由卫材(iai)和渤健(iog,II U)联合开发的Lqi(lcaa)用以治疗阿尔茨海默病(AD)。Lqi是近年来靶向β淀粉样
-
世界关注:合同变更证明应该怎么写不拘泥于形式,双方协商一致,如实表明变更内容,内容符合合同基本要件,不违反民法公平、合理、诚信信用原则就可以。可以拟定个补充协议,协
-
热文:上海春运首日对外旅客到发总量达55.17万人次证券时报网讯,央视新闻消息,从上海市春运办获悉,春运首日上海市对外交通到发总量较2022年同期增幅明显,共计达55 17万人次。其中,对外客运
-
环球通讯![扎克伯格:是我高攀了妻子!]美国脸书总裁扎克伯格,又带着他的华裔孕妻普莉希拉·陈晒照秀恩爱了。扎克[扎克伯格:是我高攀了妻子!]美国脸书总裁扎克伯格,又带着他的华裔孕妻普莉希拉·陈晒照秀恩爱了。扎克伯格果然是做社交软件的,自己先带...
-
环球热头条丨国家公务员考试临近 警惕各类涉考骗局人民网北京1月5日电(周静圆)临近2023年国家公务员笔试,不法分子利用一些家长和考生急于求成的心理,以“一劳永逸”“七天搞定公务员”等...
-
环球微速讯:华硕无畏Pro 16笔记本发布:支持裸眼3D1月5日消息,华硕在CES2023展会上发布了华硕无畏Pro16笔记本电脑,它配备了支持裸眼3D的OLED屏幕。这款笔记本电脑配备16英寸OLED显示屏,分辨
-
全球看热讯:李宁旗下三家子公司认购逾20亿元理财产品新京报贝壳财经讯(记者王真真)1月4日晚间,李宁有限公司(以下简称“李宁”)发布公告,利用闲置资金或资本开支用途之内的内部资金,公司旗下...
-
2023浙A号牌在杭州快速路限行吗2023浙A号牌在杭州快速路限行吗在快速路上行驶是限行的根据杭州交警发布最新消息:从2022年12月21日(周三)起,地面道路暂停错峰出行措施(快
-
【环球速看料】1月5日通信设备行业十大熊股一览1月5日,沪指报收3155 22,较前一交易日上涨1 01%。通信设备行业整体表现较弱,较前一交易日上涨0 52%,46只个股上涨,31只个股下跌。
-
热门:向风而行:看懂程霄硬话软说,才明白语珩败北是必然一个漂亮的飞行员和一个漂亮的女空姐都喜欢顾南亭,当两个女孩同时坐顾南亭的车回家时,于是没有硝烟的争斗开始了,没成想程霄三句话击退情敌
-
观热点:制度作用显现 我国知识产权综合竞争力稳步增强近日,国家知识产权局在北京发布《2022年中国知识产权发展状况评价报告》《2022年中国专利调查报告》。报告显示,我国知
-
环球滚动:凝心聚力勇担当 奋力奔跑开新局凝心聚力勇担当奋力奔跑开新局人大代表分团审议政府工作报告审查计划报告、预算报告等本报讯(记者李丹张军亚刘丹张俊霞蒿中刚孙震)1月4日,
-
没有对错,只是立场不同,少年请大胆决策伯夷、叔齐品行高洁,却终被饿S;屈原人格忠贞,却抱石沉江;豫让临终前假装为智伯报仇;司马相如前期全靠炒作……《少年读史:小史记》(...
-
2022年12月31日津静立交改扩建工程阶段性交工通车》》最新消息2022年12月31日,由天津滨海高新区出资、天津城投集团所属高速公路管网公司承建的津静立交改扩建工程阶段性交工通车。➤➤津静路
-
全球速看:世界杯过后,身价会大幅上涨的8位球星1、穆阿尼——身价3000万欧元这位24岁的法国前锋盘控能力出色,冲击力极强,能边路突破,也能在中路高位策应。世界杯上他出场3次进1球,尽...
-
港股异动 | 明源云(00909)早盘涨近18% 机构预计今年地产销售面积回升并转为正增长智通财经APP获悉,明源云早盘涨近18%,截至发稿,涨14 97%,报8 45港元,成交额1 59亿港元。中金发布研报称,在现有供给侧和融资端政策基础上
-
每日关注!《她很漂亮》女主黄静茵离婚!三个月前还与富豪老公秀恩爱,拒绝公开原因前职业高尔夫选手出身的演员黄静茵,和正在申请离婚调解的李荣敦代表,对有关离婚的问题闭口不谈。韩国媒体于3日接通了李荣敦代表的电话,但是
-
宝兰德核心技术人员赵艳兴减持5712股 减持金额22.99万元据上交所官网,2022年12月29日,宝兰德(SH688058,收盘价:43 48元)核心技术人员赵艳兴通过二级市场买卖,减持公司5712股,成交均价40 25元 股
-
焦点观察:大宗交易:宣亚国际成交235.26万元,折价22.12%(01-03)2023年1月3日,宣亚国际发生1笔大宗交易,总成交15 95万股,成交金额235 26万元,成交价14 75元,折价22 12%。