一.什么是缓存?
缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
mybatis也是这样,查询数据库的数据之后,mybatis可以把查询结果缓存到内存,下次查询如果查询语句相同,并且查询相关的表的数据没被修改过,就可以直接返回缓存中的结果,而不用去查询数据库的语句,有效节省了时间。
缓存的术语:针对缓存数据
- 命中(需要的数据可以在缓存中找到结果);
- 未命中(需要的数据在缓存中查询找不到,需要重新获取)。
二.Mybatis缓存
-
MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。
-
MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存,默认情况下,只有一级缓存默认开启。
-
二级缓存需要手动开启和配置,他是基于namespace级别的缓存。
-
一级缓存被称为sqlSession级别的缓存, 二级缓存被称为表级缓存。
三.缓存的适用性
适合使用缓存:
经常查询并且不经常改变的 数据的正确与否 对最终结果影响不大 的比如:一个公司的介绍,新闻等;
不适合使用缓存:
经常改变的数据,数据的正确与否对最终的结果影响很大
比如商品的库存,股市的牌价等。
一.一级缓存
1.首先我们来了解一下SqlSession是什么?
SqlSession 是SqlSessionFactory会话工厂创建出来的一个会话的对象