记得点击"欢少的成长之路",设为星标⭐
后台点击【联系我】,申请加入优质技术学习社群
【资料图】
大家好,我是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的缓存
- 天天精选!热血传奇:准1强1攻50裁决经历
- 2022中国数字旅游地图研究报告(附下载)
- 沉浸式体验5分钟溺水身亡,溺水时该如何
- 俄罗斯允许哈萨克斯坦过境向德国运输石油
- DMK获2022年度金瑞营销奖,获营销界权威肯定
- 1月10日基金净值:华商稳定增利债券A最新
- 电子城: 电子城 第十二届董事会第十次
- 今头条!通达动力董秘回复:公司目前在新
- 全球关注:质押贷贷款逾期5天拖欠多久会
- 医疗事故赔偿清单是怎么的?-关注
- 长歌暖浮生这样的句子(精选87句):当前讯息
- 环球快看:上午10点!31岁归化正式决定,
- 华晨宇的唱功是他的长处,看过他的现场,才
- 2022年12月的一些思考!
- 动态焦点:衣服上的白色盐水渍怎样处理?
- 美食街开门迎客 传统美食焕发新活力|每
- 盒马鲜生全面盈利,马云的新零售预言成功
- 燕赵财险副总黄玉璋升任数月 在平安财险
- 环球播报:合伙人失败了可以告投资人吗
- “人造太阳”,取得重要成果! 当前聚焦
- 当前动态:网友澳门偶遇刘亦菲,素颜现身小
- 全球时讯:家乡的“土特产”出名机会来了
- 世界通讯!我国数字经济发展进入数据驱动
- 网贷逾期1千还能起诉吗?
- 云南楚雄:小小绣针,绘就彝乡致富增收的
- 全球实时:2022年居住证没有租房合同怎么办
- 防疫優化 財新服務業PMI回升 环球今亮点
- 环球快讯:不敌三流外援!江苏女排还是强队
- 【环球播资讯】1月5日午后两市机构大单抢
- 蒙古货轮马祖海域沉没,船员“坐漂流货柜
- 重庆渝北公租房有学校分配吗?:全球信息
- 广电运通:2022年12月30日,公司股东人数
- 2023河南成品油调价最新消息(1月3日调整)
- 《吉尔莫·德尔·托罗的匹诺曹》:温情的
- 永安药业(002365):控股子公司与健美生签
- 请问感冒咳嗽能吃柚子吗? 环球播资讯
- 台媒:苏贞昌抖音风宣传视频被质疑,紧急
- 松桃:又到草莓季 邀您共享“莓”好时光
- 【独家】异动快报:文一科技(600520)1
- 国能日新:融资净偿还46.82万元,融资余
- 97年MVP竞争有多激烈?四大中锋挤不进前
- 热头条丨南京2022年新房成交6.4万套 创5
- 总公司可以委托分公司履行合同吗
- “横扫EMO 元气满满”!浙图“捐书筑梦
- 叫板雷克萨斯!蔚来加大产品攻势,李斌:
- 小仙炖线下旗舰店温暖推出冬季限定养生下
- Arc显卡战未来!Intel驱动优化给力:性能
- 首创证券(601136)龙虎榜数据(12-30)
- 今日聚焦!波司登要“割”消费者?羽绒服
- 图灵看市12.30-黄金多空争夺激烈、短期看
- 你我贷超过五十年会不会上征信啊?
- 感染新冠后出现肺炎的人多吗?咳嗽要去做
- 常辅股份(871396)12月29日散户资金净买
- 沪市主力大单流入前20股
- 好利科技12月29日盘中跌幅达5%|环球快消息
- 实时焦点:美克家居: 美克国际家居用品
- 世界热文:老黑策略:12.28晚盘外汇、黄
- 【环球新要闻】中非氢能战略研究院揭牌成
- 唐山元旦限行尾号2023
- “人造太阳”,取得重要成果! 当前聚焦
- 当前动态:网友澳门偶遇刘亦菲,素颜现身小
- 全球时讯:家乡的“土特产”出名机会来了
- 世界通讯!我国数字经济发展进入数据驱动
- 网贷逾期1千还能起诉吗?
- 云南楚雄:小小绣针,绘就彝乡致富增收的
- 全球实时:2022年居住证没有租房合同怎么办
- 防疫優化 財新服務業PMI回升 环球今亮点
- 环球快讯:不敌三流外援!江苏女排还是强队
- 【环球播资讯】1月5日午后两市机构大单抢
- 蒙古货轮马祖海域沉没,船员“坐漂流货柜
- 重庆渝北公租房有学校分配吗?:全球信息
- 广电运通:2022年12月30日,公司股东人数
- 2023河南成品油调价最新消息(1月3日调整)
- 《吉尔莫·德尔·托罗的匹诺曹》:温情的
- 永安药业(002365):控股子公司与健美生签
- 请问感冒咳嗽能吃柚子吗? 环球播资讯
- 台媒:苏贞昌抖音风宣传视频被质疑,紧急
- 松桃:又到草莓季 邀您共享“莓”好时光
- 【独家】异动快报:文一科技(600520)1
- 国能日新:融资净偿还46.82万元,融资余
- 97年MVP竞争有多激烈?四大中锋挤不进前
- 热头条丨南京2022年新房成交6.4万套 创5
- 总公司可以委托分公司履行合同吗
- “横扫EMO 元气满满”!浙图“捐书筑梦
- 叫板雷克萨斯!蔚来加大产品攻势,李斌:
- 小仙炖线下旗舰店温暖推出冬季限定养生下
- Arc显卡战未来!Intel驱动优化给力:性能
- 首创证券(601136)龙虎榜数据(12-30)
- 今日聚焦!波司登要“割”消费者?羽绒服
- 图灵看市12.30-黄金多空争夺激烈、短期看
- 你我贷超过五十年会不会上征信啊?
- 感染新冠后出现肺炎的人多吗?咳嗽要去做
- 常辅股份(871396)12月29日散户资金净买
- 沪市主力大单流入前20股
- 好利科技12月29日盘中跌幅达5%|环球快消息
- 实时焦点:美克家居: 美克国际家居用品
- 世界热文:老黑策略:12.28晚盘外汇、黄
- 【环球新要闻】中非氢能战略研究院揭牌成
- 唐山元旦限行尾号2023
- 环球简讯:合肥交通银行2023贺岁纪念币预
- 美迪西:12月27日获融资买入1459.94万元
- 秦川机床:拟成立陕西秦川高精传动科技有
- 凯腾精工(871553)12月27日散户资金净卖
- 晚上穿袜子睡觉好吗
- 青春不过几场世界杯
- 中国海防: 中国海防第九届监事会第十七
- 抖音海南商业保理公司增资至10亿
- 牛油果一次性吃几个?|报道
- 天天快消息!吉星高照借款逾期14年还不起
- 腾讯游戏:元旦假期前后未成年人每日限玩
- 【新要闻】浙江诸暨至宁波舟山港海铁联运
- 南天信息董秘回复:公司是金融行业数字化
- 中州期货:铁矿石短期震荡
- 焦点要闻:启明星辰: 独立董事关于第五
- 每日精选:2022津南区八级工伤赔偿期限多久
- 再度踩雷信托 恒银科技1.7亿打水漂?
- 发布变更又快又稳?腾讯运维工程师经验首
- 实时:电子体温计怎么换电池 电子体温计
- 即时:【机构调研记录】中海基金调研睿昂