2023-01-11 07:33:53 来源:程序员客栈
记得点击"欢少的成长之路",设为星标⭐
后台点击【联系我】,申请加入优质技术学习社群
(相关资料图)
大家好,我是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存活了一个小时,那么将整个清空一下。
- 加快虚拟仿真实训基地建设 启动职业学校信息化建设试点很必要
- “双减”后如何在满足学生多样需求方面做“加法”?
- 处于生理活跃期且心理发展不成熟 高校开设公共卫生必修课很必要
- 价格低于相应蔬菜零售价 西安投放约1万吨政府储备蔬菜
- 深受年轻消费群体所青睐 国潮风商品成为年货新选择
知识
- 他把银行卡卖给骗子,“黑吃黑”“截胡”十万元
- “老司机”4S店试驾豪车 结果油门当刹车撞了
- 新开工改造城镇老旧小区5.34万个
- 发动巡河志愿者2万余名 “用心护好每一条河”
- 假客服的套路:伪装成大平台客服,层层布局引人上钩
人物
- 聊聊Mybatis的缓存
- 多地宣布已渡过感染高峰,下一步会怎么样?
- 天天报道:福然德: 福然德股份有限公司关于持股5%以上股东持股比例被动稀释超过1%的提示性公告
- 快讯:百合股份急速拉升7.09% 主力资金净流入1621.20万元-世界速看
- 14岁女生上学可以泡什么茶?
- 【券商聚焦】法巴银行策略师:美元已经见顶 一个多年下跌趋势已开始|天天实时
- 没有结婚证有两个小孩怎样离婚
- 神马操作?1月8日起,山东济南746个采样点,恢复核酸服务_即时
- *ST吉艾:关于公司持有AMC资产规模的最新数据,将在后续定期报告中予以披露,敬请关注公司后续公告_焦点报道
- 赣州市赣安县交通违章怎么进行收费
- 营销 5.0 时代,CMO 能扛起增长大旗吗?
- 天天简讯:白酒概念走高 今世缘等涨超8%
- 【天天新视野】传统电视娱乐体验大升级,Oorbit与LG电子合作,将元宇宙游戏引入智能电视
- 黑老糖可以淹制桂花吗?:焦点精选
- 万柳书院少爷爆红出圈,不到一周涨粉百万!能图一乐,别对号入座:环球观察
- 国铁集团:春运首日全国铁路预计发送旅客630万人次
- 湖北省印发《实施意见》及6个配套方案 全面贯彻落实新型冠状病毒感染“乙类乙管”
- 天天热点评!突发!港股突然急速杀跌,A股也被波及!两大利空突袭?央视意外发声,百度:这些问题吓死人
- 老人“阳”了,居家治疗怎么做?如何识别重症倾向?做好两点很关键 全球信息
- 热讯:楼市回到7年前,哪些城市房价还在涨?丨财讯60s
- 全球速读:索尼、本田联手推出新电动汽车品牌Afeela 首款原型车已亮相CES
- WTI原油日内走低1.00%,现报72.46美元/桶。
- 当前速读:浪潮集团旗下三家企业获批2022年度山东省大数据发展创新平台
- 二三十年后,车贷、房贷都还清了,房价突然暴跌了,车子也报废了?:全球头条
- 网贷逾期78万到底有多严重
- 百胜动力IPO:诸多财务数据异常表现之下,国内市占率第一盛名或难副
- 基层易懂,有章可循!《上海市新型冠状病毒感染诊治规范与分级诊疗流程》发布:焦点热讯
- 全球快报:黑龙江两家村镇银行因被合并而解散 全部权利义务由哈尔滨银行承继
- 刘烨夫妇罕见露面,老婆英伦风打扮真潇洒,他理工男造型没存在感
- 世界微资讯!2023-2028年中国原子力显微镜(AFM)行业市场预测与投资规划分析报告
- 佰维存储:eMMC及BGA SSD产品可应用于ARM阵列服务器等场景
- 2023年以太坊生态5大预测;平台和钱包APP的安全性 | 区块客周刊
- 世界关注:美国内部现在有一个共识,10年内如果无法将中国打压下去,就再没有机会了!
- 世界观点:四川省广元市昭化区:实施“沙盒监管”、触发式监管优化营商环境
- 初灵信息:截止至12月30日,公司股东户数2.44万户
- 上海莱士1月3日快速上涨
- 回顾2022难忘的年度瞬间 感受蓬勃向上的中国力量:环球要闻
- 每日短讯:大宗产经:保障国内钾肥供应及粮食安全,2023年中国进口钾肥关税调整为零
- 如何简单高效地定制自己的文本作画模型?|世界独家
- 2022年离职证明的效力
- 仙桃心理医院哪家好
- 王思聪牵手新女友现身海南!对方娇小可爱只有20岁,现场罕有发飙|环球报资讯
- 中化岩土子公司与成都兴城集团签订中标项目施工合同:每日速看
- 今日精选:鲜花生煮多久能吃 鲜花生煮几分钟才能吃呢
- 中邮钱包贷款逾期10个月上征信吗?
- 今日关注:中央气象台:西南地区多阴雨雪天气 中东部大部地区气温将由前期偏低转为偏高
- 乐享集团(06988.HK)根据股份奖励计划购买股份 环球滚动
- 中国石化“深地一号”再获超深层“千吨井” 全球热门
- 小赢卡贷贷款逾期52年还不起会上征信系统吗:全球新消息
- 粤林业产业总产值到2025年将达万亿 环球视讯
精彩阅读
- 期货人的新期待_天天新消息
- 广联航空:航空领域已基本完成布局 未来将由成长期进入收获期
- 天天微资讯!最大CLIP!LAION发布CLIP的扩增定律
- 总投资13899万元,四川省应急救援总队基地建设项目开工建设
- 通合科技董秘回复:在车载电源领域,公司目前围绕物流车、商用车和专用车等厂家提供产品和服务
- 当前视讯!青春不过几场世界杯
- 环球新动态:e点贷逾期3个月不还会怎么样
- 上海组织开展“全民反恐 守‘沪’平安” 主题宣传教育活动 环球热头条
- 华茂股份(000850.SZ):拟8835.21万元收购新坤贸易100%股权|环球短讯
- 「某某某」二喜夺冠,小剧场荣光与你一同见证!-天天关注
- 71岁张纪中感染新冠第九天,症状越来越重,表情痛苦吞咽困难:环球热点
- 京东北汽小米列 2022北京企业100强前三
- 捷信超贷贷款逾期30年拖欠多久会上征信系统 全球观热点
- 坤恒顺维:12月23日融券卖出金额25.28万元,占当日流出金额的4.24%
- 镇平郭庄乡:开展惠企政策培训 助力企业发展
- 大华股份董秘回复:四季度应收账款相关信息敬请关注后续对外披露的定期报告_每日消息
- 年内关停超40个项目,视频号是全场希望!马化腾想要哪些强有力的变化 当前热门
- 天天亮点!通用股份: 江苏通用科技股份有限公司2022年第六次临时股东大会会议资料
- 境内首只可投韩国市场ETF上市 ETF跨境投资版图再扩容_世界快播报
- 国家储备林建设面积全国居首 广西发行首批国储林林票 天天视点
- 五个交易日投放5790亿 央行缘何不断加大逆回购操作?
- U19男足新一期集训名单出炉 邵佳一担任领队-世界最新
- 中国多渠道满足民众就医买药需求 多地明确返岗上班要求
- 世界看热讯:农业农村部:全国农产品批发市场猪肉平均价格比昨天下降1.7%
- 播报:基于.NetCore开发博客项目 StarBlog - (21) 开始开发RESTFul接口
- 环球新资讯:学习类App“超纲”推送是否违法?法官这样说——
- 【全球报资讯】埃隆·马斯克意外亮相卡塔尔,和王子们看决赛,还有伊万卡的丈夫
- 环球速讯:4千万诈骗罪会判多少年
- 全球快资讯丨科顺股份与广路集团强强联合
- 5 年的前端成长计划 - 仅剩 300 名额 - 打破职业发展壁垒 世界热点评
- 服用降压药时不要同时吃西芹 世界最新
- 吉星网贷逾期会影响征信吗-当前头条
- 上海财经大学校长刘元春:稳房地产是稳定消费和稳投资的核心抓手|每日头条
- 抗原试剂“一盒难求”,加大供给也要科学高效使用
- 【龙虎榜】贵广网络12月16日成交明细
- 直击央视315 | “非标”电缆乱象遭曝光!
- 华为云·鲲鹏板块12月15日涨1.17%,易华录领涨,主力资金净流入2.32亿元-环球微速讯
- 【手慢无】西部数据1TB SSD Green SN350四通道闪购仅469元
- 东风股份:截止2022年第三季度公司全资子公司澳洲福瑞持有奥纯冠(NATURE ONE DAIRY (AUSTRALIA) PTE LTD)19.14%的股份:世界最新
- 专用设备板块12月14日跌0.09%,泰林生物领跌,主力资金净流入2.71亿元|焦点简讯
- 阿石创董秘回复:转光膜技术主要应用于下游客户生产-全球最资讯
- 美锦能源:公司旗下已运营的加氢站合计15座,分别位于北京市,山东青岛,浙江嘉兴,宁夏宁东,山西太原、晋中、吕梁、大同等地:环球头条
- 中国经济一线观察|继续把实体经济做实做强做优_新资讯
- 巴比食品:截止12月9日,公司股东总人数(户)约为1.2万
- 网贷逾期47年还不起严重后果是什么
- 鹤壁市山城区:以政府购买服务方式 解决分散供养特困人员急难愁盼
- 新天绿能(600956):于电话会议举行投资者关系活动:每日播报
- 广汽集团(601238):疫情影响致11月销量下降 天天播报
- 利通电子(603629):利通电子董事及实际控制人减持股份计划
- 生意社:大豆行情后市仍将走弱为主|环球信息