天天新动态:聊聊Mybatis的缓存
记得点击"欢少的成长之路",设为星标⭐
后台点击【联系我】,申请加入优质技术学习社群
(资料图)
大家好,我是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存活了一个小时,那么将整个清空一下。
推荐文章
- 饭店内2万余元黄金首饰被盗,3小时后警察找到了“最不可能的她”
- 为了防止造反,明朝不准王爷进京,清朝不准王爷出京,谁更高明
- 慈善夜市什么样?来半淞浦西世博园区看看吧
- 兰州市出台《关于进一步促进房地产市场平稳健康发展的若干措施》
- ⚽荷乙战报:赫尔肯斯头槌制胜 威廉二世2-1逆转马斯特里赫特
- 四合院开局一只旅行青蛙(旅行青蛙 明信片)
- 詹宁斯谈明年奥运首发:库里、布克、詹姆斯、杜兰特、浓眉
- 东西问·汉学家丨美国汉学家邰谧侠:《道德经》缘何成为外译最多的中国典籍?
- 顺发恒业(000631.SZ):选举许小建为董事长
- 非遗文化+群众体育!普宁连续24年举办7届运动会
- 13岁女孩被老师扇致耳膜穿孔,事发数月老师仍在上课,学校回应
- 杨幂男友曝光?周冬雨跑路?杜华背刺孟美岐?檀健次被代言退货?
- 2023内蒙古鄂尔多斯市党群部门所属事业单位招聘工作人员考试成绩汇总的公告
- 祥源新材(300980.SZ):研发生产的聚烯烃发泡材料已进入华为的供应链体系中,通过下游模切厂供给至华为
- 免票、半价!徐州最新发布!
- 华为Mate60和Mate50配置对比!5499起“加量不加价”
- 轩尼诗Hennessy亚洲首店将于上海前滩太古里开业
- 定西宽粉“圈粉”无数
- 河南各级工会三年消费援疆超4.5亿元
- 谨防文具盲盒“刺伤”孩子
- 一天三场重磅活动 温州新能源产业风鼓满帆
- 爱柯迪(600933)8月31日主力资金净卖出1283.43万元
- 机械革命鲨疯了 R7-7840H迷你主机2999元!
- 中贝通信:算力租赁业务尚未产生收入
- 金辉控股上半年净利润约7.37亿元,二线及核心三线土储占比为97%
- 街边烟火气聚拢起人气和财气
- 崩坏星穹铁道往复不止怎么达成
- 苏州五批次共计成交金额42.9亿元,2宗地块封顶摇号
- 华泰证券(06886):“21华泰11”将于9月7日付息
- 宣战书(关于宣战书介绍)
- 离婚后对方不给抚养费可以申请法院强制执行吗?
- 中国智能手表市场:华为居首 苹果、小米居二
- 中央气象台升级发布台风红色预警
- 吴子嘉曝郭民调再往下掉 没能力就不要玩了
- 阿特斯:8月30日融资买入2477万元,融资融券余额2.86亿元
- 180家上市公司中报分红,减持新规下3家“铁公鸡”终分红
- 今日中国组合timez组合解散了吗(能说实话吗 TimeZ和EXO那个人气更高呢为什么我觉得TimeZ有些弱呢)
- 治安管理处罚法修订草案首次提请审议,这些看点值得关注
- 强度堪比“杜苏芮”!新台风会影响江西!接下来天气……
- 龙湖集团2023年第一期中期票据成功发行,规模为11亿元
- 四箭齐发,大牛市来了?
- |不一样的新村民,舞出岱岳新风情
- 莱西格(关于莱西格的简介)
- 良品铺子行走的CD夏日歌会落地武汉美术馆,本周五将迎来收官之战
- 中集集团上半年营收606亿元 储能业务在手订单逾10亿元
- 天风证券:给予科前生物买入评级
- 国产芯片制造的突破手,青岛芯恩-澳柯玛
- 农业农村部:科学规范开展增殖放流 推进长江大保护工作
- 福田雷萨北方战区营销业务交流会圆满召开
- 奋力夺取秋粮好收成
- 【动脉严选新品鉴第27期】安速康医疗:首款国产分体式设计无主机超声刀
- AH300ETF:融资净偿还1.15万元,融资余额97.29万元(08-29)
- 食品安全板块8月29日涨1.78%,新 大 陆领涨,主力资金净流出1.11亿元
- 创建文明城市从我做起征文800字开头 创建文明城市从我做起征文
- [meteortale]被收养的姐弟 Mokiet&Undyne
- 海绵是什么材料做的(海绵是什么材料)
- 皮蛋“拌”香蕉 沉浸式艺术展登陆上海
- 曝北京首钢男篮下赛季季后赛主场定在首都体育馆
- 收评:两市收高创业板指涨近3% 科创50指数大涨超4% 资金爆买相关ETF
- 莫里斯·斯泰因(关于莫里斯·斯泰因简述)
- 生物医药产业高质量发展战略咨询会召开
- 北京来论:两岸经贸关系必须回归正常化轨道
- 中国电研:8月28日融资买入445.01万元,融资融券余额1.06亿元
- 襄阳市樊城区明晶巷社区:打造睦邻调解室,巧化百姓烦心事
- 浙能电力:8月28日融资买入2202.59万元,融资融券余额2.4亿元
- 国海证券给予马应龙买入评级,2023 年中报点评:基数影响上半年销售费用高增长,短期拖累利润端
- 残保金2019年2015号优惠政策(残保金2019)
- 财政部、国家税务总局公布延续一批个人所得税优惠政策
- 自行车和棒球来了!明天10点,杭州亚运会又有8个项目开票
- 国家二级保护动物雨中“落难”,警民联手救助
- 【互动掘金】泰胜风能:目前在手订单充裕 各生产基地产能利用较为饱满
- 二维码 推动数字时代发展新变革
- 公安河东分局开展平安建设主题宣传活动
- 券商观点|食品饮料行业研究周报:中国啤酒的高端化,道阻且长,溯游从之
- 暴雨将至!台风“苏拉”逐渐靠近,海南未来天气
- 瑞尔特8月28日快速反弹
- 悄无声息的意思(别具匠心的意思)
- “不只选好作品,更要选好苗子”——2023青创赛侧记
- 【碧蓝档案×明日方舟】当罗德岛误入基沃托斯27:初入灰鸡窝的日富美
- 发泄小游戏下载(可以发泄的小游戏)
- 凯隐技能机制(lol凯隐技能)
- 中国石化:上半年净利同比降20.1% 拟8亿至15亿元回购股份
- 摩托罗拉耳机(关于摩托罗拉耳机的基本详情介绍)
- “苏拉”已升至超强台风,预报路径直指福建?未来泉州天气……
- 睡前八个动作瘦小腿
- 红楼梦:蘅芜苑是大荒山?薛宝钗是山鬼转世?
- qq涂鸦简单画法撩人(qq涂鸦怎么画好看)
- 奥迪时间怎么设置(奥迪时间怎么调整?)
- 郭艾伦:开局心态调整的不错&尤其张镇麟 替补上来节奏有点停滞
- 盘古越狱工具怎么用(盘古越狱工具)
- Target推进布局区域物流网络 提供就近配送服务
- 科威尔(688551.SH):拟使用不超4.5亿元暂时闲置募集资金进行现金管理
- 老师补课学生提高60分,家长明知违规却引而不发,原来是时机未到
- 多措并举促消费丨税惠扮靓夜经济
X 关闭
资讯
X 关闭