聊聊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存活了一个小时,那么将整个清空一下。
推荐文章
- 聊聊Mybatis的缓存
- 加工费 PTA价格涨跌关键
- 抗疟疾新药Tafenoquine目前的剂量被认为是不够的
- 实时:刚刚!一个大利空,一个大利好!
- 每日视讯:1月9日众信旅游涨6.52%,中信建投远见回报混合A基金重仓该股
- 世界看点:工厂加班费是多少钱一小时
- 桔子分期逾期22天拖欠多久会上征信
- 借去花网贷9千逾期暂时还不起会被起诉吗
- 长宁区五级工伤赔偿期限多久_天天速讯
- 科尔:伊戈达拉是位如此“古怪”的球员 头脑是他最强的资产 世界聚焦
- 致力于提供“自我给药装置”整体解决方案,毅达资本投资嘉树医疗 当前报道
- 世界快报:2022年全球票房榜出炉,《阿凡达2》半个月夺第2,国产两部进前10
- 西媒:英国人出奇招应对能源危机 歌剧院变“供暖银行”|世界今头条
- 四岁的孩子抚养费标准_全球热议
- 祥鑫科技(002965.SZ):控股股东解质22万股|世界头条
- 比亚迪 2023 年销售目标 400 万辆?官方回应:目前不好判断 全球观速讯
- 热头条丨2022年度隔热条行业品牌榜
- 焦点消息!光伏概念股涨疯了,一个万亿级机会即将爆发
- 深圳大消息!二手房“带押过户”来了 可大幅降低交易成本!二手房成交已连续两年腰斩… 世界滚动
- 天天头条:2023南京中山陵园风景区停车收费标准
- 1月5日基金净值:易方达科翔混合最新净值4.824,涨1.62%
- 鸿路钢构(002541)公司点评:单季产量首破百万吨 23年需求有望显著恢复
- 西南油气田首个光伏示范项目成功投运
- 澳媒:中国电动汽车进军澳大利亚市场_今日最新
- 力源科技(688565):收到中国证券监督管理委员会立案告知书,立案对象为公司,立案原因为涉嫌信息披露违法违规
- 大宗交易:凯旺科技成交1896.4万元,折价10.26%(01-04) 焦点快播
- 1月4日TOPCon电池板块跌幅达2%-世界快看
- 艾隆科技:截止2022年12月20日,公司股东持有人数(已合并)为4346人 环球播资讯
- ppmoney网贷14万逾期不还会面临起诉吗
- 柳药集团(603368.SH):截至12月底已累计回购146.36万股
- 二六三股东户数增加1.49%,户均持股4.52万元
- 2023春节留苏景点免费到什么时候_看点
- 紧急呼吁!武汉血液储备多日低于安全线,急需“一臂之力” 天天报资讯
- 节日期间山东安全生产和自然灾害形势总体平稳 今日热讯
- 当前讯息:赞美柳州景色的句子(精选39句)
- 天天速看:华擎推出 Z690 D4ID-2T 异形 ITX 小板:双万兆网口
- 水牛怎么养 养水牛方法 快看
- 世界快看点丨社区10款年度优秀插件框架盘点!
- 如何规定遗产继承诉讼的期限? 全球快消息
- 焦点信息:特朗普抨击美众议公布其纳税申报表:这将带来可怕后果
- 2023年春节会被家人强制相亲的星座女_世界今头条
- 2023年南昌新建区新春百货家电消费券活动商家有哪些?
- 和顺石油(603353)12月30日主力资金净买入427.25万元 天天速看料
- 金达威:公司维生素D3系列产能折合50万IU/g的规格为1600吨/年-当前关注
- 最大CLIP!LAION发布CLIP的扩增定律
- 2023年惠州红花湖元旦去要预约吗?如何预约?
- 高德地图在全国近360城上线“绿灯导航”,基于北斗系统定位能力|环球动态
- 2022邯郸武安安康医院就诊防疫要求(持续更新)|天天播报
- 【全球播资讯】2022怒江六级工伤如何计算
- 最资讯丨英联股份(002846.SZ):拟投资30.89亿元建新能源汽车动力锂电池复合铜箔、铝箔项目
- 今日热闻!小学生作文大姑来接我放学(通用9篇)
- 【独家焦点】2022年河南省职工医院招聘信息(郑州)
- 热推荐:南京大屠杀幸存者袁桂龙去世 在册在世幸存者仅存51位
- 俄罗斯外长:美西方正在对俄发动混合战争_世界今日报
X 关闭
最新资讯
- 提名影帝后沦落街头!月入不到200元,他怎么成了这样?|快资讯
- 天天观热点:广百股份: 关于追加减免2022年租金的公告
- 全球观点:2023年济宁寒假放假时间
- 第一创业董秘回复:公司与何巧女股票质押式回购交易纠纷案目前仍处于执行阶段,没有应披露而未披露的信息
- 【天天快播报】百川畅银2名股东合计减持3200股套现10.66万2022年前三季度公司净利5132.92万
- 信息:财达证券最新公告:拟定增募资不超过50亿元
- 即时看!皮皮虾该怎么烧?
- 哪些蔬菜适合减肥?-世界滚动
- 她曾是央视一姐,辞职后变成为公司董事长,54岁素颜出镜风采依旧-天天观天下
- 当前热讯:2023 年春运首日火车票今日开售,注意儿童票规则有所变化
- 醉酒交通肇事会如何判刑
- 当前快播:《大红灯笼高高挂》编剧倪震猝逝,享寿84岁死因疯传
- 最新:普京回应美将向乌提供“爱国者”:不如S-300的老系统,俄会“击碎”
- 天鹅股份(603029.SH):申请明起停牌、披露核查公告后复牌
- 世界热文:APEC各经济体经贸有序恢复 区域内合作更显活跃
- 一位奔三演员的自述,揭开了多少“北漂追梦人”的辛酸
- 基于.NetCore开发博客项目 StarBlog - (21) 开始开发RESTFul接口 天天快看点
- 黄山承包土地纠纷律师怎么收费
- 2022四川数字经济企业50强排行榜|实时焦点
- 顶固集创(300749.SZ)股东曹岩累计减持9万股 减持时间过半_热文
- 有呼必应 助企发展_今日热搜
- 当前要闻:CQF是什么时候考试?考试能不能延期?
- 天天热门:发布变更又快又稳?腾讯运维工程师经验首发
- 鸿博股份:12月16日获融资买入287.94万元-热点评
- 捏鼻梁会让鼻子变挺吗|新要闻
- 38岁老詹拼42分钟轰33+9+9 他的对手比他小14岁
- 进口退烧药遭国人哄抢,代购直邮齐涨价,与国外价差最高达9倍 全球新动态
- 丰田霸道普拉多图片,丰田霸道兰德酷路泽v8多少钱|当前简讯
- 环球速讯:梅安森: 民生证券股份有限公司关于重庆梅安森科技股份有限公司部分募投项目延期的核查意见
- 显盈科技:12月15日获融资买入397.64万元,占当日流入资金比例28.66%_全球速看
- ST柏龙: 关于收到广东证监局《行政监管措施决定书》的公告|每日精选
- 川环科技(300547)12月15日主力资金净买入132.10万元
- 修改财务报表可以贷款吗(财务报表不申报可以吗)
- 精彩看点:福建七岁小孩抚养费一般多少钱
- 江南化工董秘回复:股份交易属交易双方商业行为,交易双方依据签署的协议履行权利与义务
- 寿险渐复苏 财险动能足 保险业转型发展静候春天到来|全球观焦点
- 当前热议!天下秀: 天下秀数字科技(集团)股份有限公司股东集中竞价减持股份进展公告
- 世界通讯!华斯股份董秘回复:截至2022年12月10日 的股东人数约为32400 名
- 牧原股份(002714.SZ)拟设立多家子公司 分别开展生猪、新能源、生物技术相关业务
- 快看点丨MediaTek先进科技引领移动平台创新趋势
- 普源精电: 普源精电科技股份有限公司关于公司董事会及监事会换届的公告
- 微速讯:浙江世宝(002703)12月8日主力资金净买入3291.45万元
- 焦点关注:高视医疗资本市场前景难言乐观:竞争力存疑,产品多次被召回
- 股票行情快报:庄园牧场(002910)12月6日主力资金净卖出637.38万元|天天速看料
- 全国首部!江西“小切口”立法 解决环境大问题
- 邯郸市启动为期半年的食品安全专项行动 严打食品违法犯罪行为
- “洗衣液奶茶”因存安全隐患全部下架 商家:“以后也不会再卖了”
- 警惕“唱反调”演变成不尽责 独董不能止于说“不”更要勤勉尽责
- 恐龙呼吸道感染首个证据发现 几万年前的恐龙也患感冒
- 台风“圆规”携风裹雨来袭 广东深圳、珠海等地停课停工
X 关闭