品牌 资讯 搭配 材料 时尚 热点 行业 首饰 玉石 行情

聊聊Mybatis的缓存|天天聚看点

2023-01-10 12:12:24 来源:程序员客栈

记得点击"欢少的成长之路",设为星标⭐

后台点击【联系我】,申请加入优质技术学习社群


(资料图片)

大家好,我是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。好久没有输出技术理论了,实在是...

2023-01-10 12:12:24

佛山岭南天地马哥孛罗酒店年夜饭多少钱?

​⭐佛山岭南天地马哥孛罗酒店年夜饭价格如下:大吉大利宴(供5位享用)1988元花开富贵宴(供6位享用)2388元阖家团圆宴(供8位享用)3988元阖家安康宴(供

2023-01-10 11:15:06

彩生活(01778)继续开展正常业务营运 继续停牌|今头条

​智通财经APP讯,彩生活(01778)发布公告,截至本公告日期,该集团继续开展正常业务营运。于本公告日期,公司核数师正就本集团截至2021年12月31

2023-01-10 10:39:13

小小火车票见证时代大变迁(微观) 环球热推荐

​在中国铁路北京局集团公司石家庄站站史馆内,展示了一套各个时期的火车票。硬板票、软纸票、磁介质票……展柜里的一张张车票见证铁路交通的...

2023-01-10 09:48:21

谁会用抖音桌面端聊天软件? 天天新消息

​抖音聊天一小步,“截胡”微信一大步?@新熵原创作者丨樱木编辑丨月见新年伊始,抖音再次潜入了微信的后院。12月30日,抖音官方网站上线了...

2023-01-09 20:22:55

一罐液化气取暖能烧多少天?

​一罐液化气取暖,在一般情况下可以使用45天左右。使用多久,这根据使用时间跟次数有一定关系,如果按一次三口人计算,一罐25KG的液化气全部用于燃

2023-01-09 18:31:16

23苏州银行CD008今日发布发行公告

​23苏州银行CD008发布发行公告

2023-01-09 18:36:03

留给威马的时间不多了

​“让威马从神坛上跌落的不是外人:脾气最火爆的侯海靖妄图只手遮天;最懂销售的陆斌背锅离开;CEO沈晖酿出一系列骚操作。每走错一步棋,都...

2023-01-09 18:28:07

SHEIN成为2022年全球下载量第一购物APP,但有这些隐患……

​SHEIN作为中国最大的独立站快时尚B2C跨境电商平台,近年来以惊人的速度在全球快速发展,已经成为了当下年轻人心中快时尚

2023-01-09 15:12:00

中邮钱包逾期十个月延迟还款征信有什么影响 热闻

​网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可

2023-01-09 14:05:16

2023年度国考今举行:拟招3.7万人,近260万人报考 环球热消息

​今日,中央机关及其直属机构2023年度考试录用公务员公共科目笔试将举行,本次国考计划招录3 71万人,近260万人报名过

2023-01-09 11:51:32

山东最大万达广场来了!落户济南槐荫,具体位置公布

​仅购物中心占地就约30万平方米!槐荫区盼望已久的万达广场终于要来了!而且是“山东省最大第四代万达广场”!近期,经过多轮招商洽谈,济南...

2023-01-07 02:15:26

长沙中联重科环境中标上思县城区环卫一体化PPP项目社会资本方采购项目!

​长沙中联重科环境中标上思县城区环卫一体化PPP项目社会资本方采购项目!北极星固废网获悉,中国政府采购网发布上思县城区环卫一体化PPP项目社

2023-01-06 23:42:55

复古风潮 像素风游戏推荐

​现如今游戏大作画质是越来越高,从2K到4K,光追特效,抗锯齿,帧率也是随着可用硬件的提升在不断的提高。但对于玩家来讲高清的画质固然带来震

2023-01-06 21:24:24

价格迎拐点,利好下游!大资金抢筹龙头,机构这样看光伏产业

​今日两市主力资金净流出116 3亿元,其中创业板净流出17 79亿元,沪深300成份股净流入0 48亿元。申万一级行业中,涨幅居前的有电力设备、有色金

2023-01-06 19:26:19

“追光2022”天府人物推介⑯|贺培诚:这位金牌教练,让南方涌现短道速滑尖子_世界聚焦

​今天的主角,是一位金牌教练,年过七旬仍然在一线执教的体育人。

2023-01-06 15:52:56

东城区债权人代位权纠纷律师收费要多少|世界快看

​1、按件收费收取(1)无财产争议:6000元-20000元之间;(2)法律文书:600元-2000元之间;(3)律师见证:2000元-10000元之间;(4)代办公证

2023-01-06 15:26:33

宏昌科技:1月5日获融资买入29.10万元,占当日流入资金比例11.56%|世界资讯

​同花顺数据中心显示,宏昌科技1月5日获融资买入29 10万元,占当日买入金额的11 56%,当前融资余额3372 52万元,占流通市值的5 62%,低于历史50

2023-01-06 13:18:17

2022年全年汽车投诉榜公布,宝马烧机油,比亚迪交付慢

​2022年刚刚过去,个品牌也是时候总结一下过去了,其中某投诉网站就率先给出了投诉排行榜,前十的车型分别为:华晨宝马宝马X3、华晨宝马宝马5系

2023-01-06 11:31:28

快易花逾期六天会上征信吗

​网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可

2023-01-05 14:10:17

环球速讯:哪些二类预防针有必要打?

​二类疫苗哪些有必要打二类疫苗如水痘疫苗、手足口病疫苗、流感疫苗、肺炎疫苗、流感嗜血杆菌结核疫苗、轮状病毒疫苗等,在有条件的前提下建议

2023-01-05 12:23:30

C罗预计将入住沙特利雅得富人区一处价值1220万英镑的宫殿

​1月4日讯C罗亮相利雅得胜利,正式加盟球队。据《每日邮报》此前介绍,C罗预计将入住沙特利雅得富人区一处价值1220万英镑的宫殿。据多家媒体表

2023-01-04 21:32:10

百位华商预见2023|谢正宾:中俄两国应加强农业等领域合作

​(闫淑鑫)“受俄乌冲突等因素影响,2023年全球经济仍面临诸多不确定性,国际贸易仍将承受较大压力。对此,他建议,中国可以通过进一步加强与俄

2023-01-04 17:09:29

快看点丨哪吒汽车上调部分车型售价

​证券时报e公司讯,据哪吒汽车官网,哪吒汽车对旗下部分车型售价进行调整。哪吒S调整后售价区间为20 28万-34 18万元,涨价幅度3000元;哪吒U-II

2023-01-04 14:36:50

亚马逊(AMZN)获得80亿美元无担保贷款-全球关注

​据美国证券交易委员会(SEC)1月3日文件显示,亚马逊(AMZN)在该文件中称与数家贷款方达成一笔80亿美元的无抵押贷款协议。这笔无抵押定期贷款的

2023-01-04 10:47:29

浦江国际(02060)1月3日斥资13.75万港元回购23.7万股|天天即时看

​浦江国际(02060)发布公告,于2023年1月3日斥资13 75万港元回购23

2023-01-04 08:26:28

庄子的经典句子(精选560句)_世界最资讯

​庄子的经典句子精选74句1 真者,精诚之至也。不精不诚,不能动人。《庄酒·渔夫》2 朝受命而夕饮冰。《人间世》——庄子名言3 吾以天地...

2023-01-03 23:35:27

热消息:奥维通信: 股票交易异常波动的公告

​奥维通信:股票交易异常波动的公告

2023-01-03 18:35:01

财险业有望迎来小阳春 人身险业需继续趟过深水区

​本报记者 冷翠华新的一年已经开始。回首2022年,保险业在负债端和

2023-01-03 15:52:50

每日热点:向太也下场直播了,郭晶晶在社交账号上的一句话,打了多少富太的脸

​向华强一家一直活跃在大众视野中,无论是儿子向佐与娱乐圈女明星郭碧婷的婚姻,还是向太多次下场澄清向佐的种种负面感情绯闻,都是大家关注的

2023-01-03 12:40:01