Mybaits一级缓存和二级缓存分别是什么,区别是什么?

Mybaits一级缓存和二级缓存分别是什么,区别是什么?,第1张

什么是缓存?

        是数据交互的缓冲区,应用程序需要读取数据时,先从数据库将数据去除,放在缓冲区,应            用程序从缓冲区读取数据。

缓存的特点:数据库取出的数据保存在内存中,具备快速读取和使用。

缓存的限制:读取时无需再从数据库获取,数据可能不是最新的。

缓存的功能:减少java Application 与数据库的交互次数,从而提升程序的运行效率。

缓存的适用性:经常查询并且不经常改变的,数据的正确与否对最终结果影响不大的。

缓存的分类:

                一级缓存:会话级别的缓存,针对一次会话操作;

                二级缓存:映射器级别的缓存,针对不同Namespace的映射器;

                自定义缓存:根据各类不同缓存机制,自定义缓存实现方式。

一级缓存:        

        打印:

注意:调用sqlsession的修改,添加,删除,commit(),close()等方法时,就会清空一级缓存。

缓存的配置:

        localCacheScope:表示配置一级缓存,默认是session级别的缓存。

一级缓存的工作流程:

                1.对于某个Select Statement,根据该Statement 生成key;

                2.判断在Local Cache中,该key是否用对应的数据库存在;

                3.如果命中,则跳过查询数据库,继续往下走;

                4.如果没命中,去数据库查询数据,得到查询结果;

                5.将key和查询到的结果作为key和value,放入Local  Cache中;

                6.将查询结果返回;

                7.判断缓存级别是否为STATEMENT级别,如果是的话,清空本地缓存;

 一级缓存失效情况:

                不同SqlSession对应不同的一级缓存

                同一个SqlSession单查询条件不同

                同一个SqlSession两次查询期间执行了任何一次增删改操作

                同一个SqlSession两次查询期间手动清空了缓存

二级缓存:

缓存的配置

                1.在 mybatis的xml配置

                        

                 2.在Mapper.xml中配置

              3.在使用操作中配置

注解配置:

在接口的定义上面直接使用@CacheNamespace 并将blocking设置为true,二级缓存就可以使用了

小结:

                A:Mybatis的二级缓存相对于一级缓存,实现了缓存数据的共享,可控性也更强

                B:二级缓存极大可能会出现错误数据,有设计上的缺陷,安全使用条件比较苛刻

                C:二级缓存分布式环境下,必然会出现读取到错误数据,所以不推荐使用

总结:

        一级缓存:是相对同一个SqlSession对象而言的缓存

        二级缓存:一个namespace下的所有操作语句,都影响者同一个Cache

 

 

                

                

      

        

欢迎分享,转载请注明来源:内存溢出

原文地址:https://outofmemory.cn/web/2990419.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-09-23
下一篇2022-09-23

随机推荐

  • 含有“顿”的成语有哪些?

    1、舟车劳顿【拼音】:zhōu chē láo dùn【解释】:舟车:船与车,泛指一切水陆交通工具。劳顿:劳累疲倦。形容旅途疲劳困顿。【出处】:钱钟书《围城》第二章:“那两位记者都说:‘今天方博士舟车劳顿,明天早晨到府聆教。’”2、

    2023-02-03
    100
  • 田径包括什么项目

    田径运动包括走、跑、跳跃﹑投掷等运动项目,具体分类如下所示:径赛包括:短跑、中距离跑、长跑、跨栏、接力、男子3000米障碍赛跑。田赛包括:跳远、三级跳远、跳高,撑杆跳高、铅球、铁饼、标枪和链球。公路赛:马拉松、男子20公里和50公里竞

    2023-02-03
    200
  • 黄油是什么

    黄油(Butter)是用牛奶加工出来的一种固态油脂,是把新鲜牛奶加以搅拌之后上层的浓稠状物体滤去部分水分之后的产物。主要用作调味品。公元前5世纪,匈奴人就已经因为以牧业为主,奶制品各种制作技术成熟并传播国内外。外国人称为黄油,就是中国人称

  • 道聚城怎么买皮肤英雄联盟手游皮肤

    你好,道聚城怎么买皮肤英雄联盟手游皮肤第一步,打开掌上道聚城第二步,点击英雄联盟第三步,点击全部道具第四步,选择自己想要买的皮肤第五步,点击立即购买即可。希望能帮到你。英雄联盟在道聚城直接购买炫彩皮肤账号没有原皮肤是不可以直接使用的。炫彩皮

  • 逝者已矣生者如斯是什么意思

    逝者已矣生者如斯的意思是:死去的人已经离我们而去,活着的人要坚强的好好的活下去,让死者在天堂也能够安息。“逝者已矣”就是说人死不能复生,他的一切已随他而去了;“生者如斯”就是说活着的人要继承和发扬已逝之人的意志和精神,斯人已逝,但精神永存。

  • 三明治面膜的正确做法

    一般而言,采取胶—水—胶的做法。关于三明治面膜的做法,一般而言,采取胶—水—胶的做法,即用面膜刷将海藻胶等刷于脸上,再将完全浸泡了化妆水的纸膜敷在脸上,最后再刷上一层 海藻胶,如制作三明治一般。这样的做法原理在于利用中间的水膜为肌肤补充

    2023-02-03
    100
  • 熬夜后如何恢复体力和精神,熬夜了第二天精神怎么才能

    1.先补睡眠若是已有挑灯夜战的打算,那么应提前补眠1到2个小时,可以先补上一些睡眠需求量,身体存在每天的基本睡眠需求时间,若是熬夜到疲劳过度,此时即便喝咖啡,也无法达到提神效果。专家介绍说,事后补觉的做法属于消极休息,换句话来说,这是一种被

    2023-02-03
    100
  • 银行用来扎钱的一条一条的纸条叫什么啊

    银行用来扎钱的一条一条的纸条叫扎钞纸。扎钞纸,用于银行纸币装订的纸币,通常50厘米长,30厘米长,由棉纸、造币纸、牛皮纸等制成。,现常用扎钞纸是棉纸纸币装订条,由棉纸纸浆精制而成,具有韧性强、不手割、颜色洁白、封口清晰、易于装订等特点。 

  • 沙漠的风 歌词

    歌曲名:沙漠的风歌手:郑怡专辑:心情作词:林秋离 作曲:郭巍一种感觉打断了多年心灵的沉睡我的思绪不听指挥表情也变得索然无味到底是谁左右我一生欢喜和伤悲将我灵魂切割分裂散落在两个不同的世界 重叠梦般的爱情 超越时空的边缘面对着一样的眼神我已分

    2023-02-03
    100

发表评论

登录后才能评论

评论列表(0条)

    保存