Mybatis一级缓存和二级缓存

本文介绍了Mybatis的一级缓存和二级缓存。一级缓存是SqlSession级别的,同一SqlSession内的相同查询直接从缓存获取;二级缓存是mapper级别的,跨SqlSession共享,但可能存在脏数据问题。一级缓存默认开启,二级缓存需手动配置。
摘要由CSDN通过智能技术生成

一.什么是缓存?

        缓存是指可以进行高速数据交换存储器,它先于内存与CPU交换数据,因此速率很快。缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

        mybatis也是这样,查询数据库的数据之后,mybatis可以把查询结果缓存到内存,下次查询如果查询语句相同,并且查询相关的表的数据没被修改过,就可以直接返回缓存中的结果,而不用去查询数据库的语句,有效节省了时间。

        缓存的术语针对缓存数据

  1.   命中(需要的数据可以在缓存中找到结果);
  2. 未命中(需要的数据在缓存中查询找不到,需要重新获取)。

二.Mybatis缓存

  • MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。

  • MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存,默认情况下,只有一级缓存默认开启。

  • 二级缓存需要手动开启和配置,他是基于namespace级别的缓存。

  • 一级缓存被称为sqlSession级别的缓存, 二级缓存被称为表级缓存。 

 三.缓存的适用性

适合使用缓存:

经常查询并且不经常改变的 数据的正确与否 对最终结果影响不大
比如:一个公司的介绍,新闻等;

 不适合使用缓存:

经常改变的数据,数据的正确与否对最终的结果影响很大

比如商品的库存,股市的牌价等。


一.一级缓存

1.首先我们来了解一下SqlSession是什么?

        SqlSession 是SqlSessionFactory会话工厂创建出来的一个会话的对象

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值