缓存
1、简介
查询 : 连接数据库,耗资源!
一次查询的结果,给他暂存在一个可以直接取到的地方!--->内存 : 缓存
我们再次查询相同数据的时候,直接走缓存,就不用走数据库了
什么是缓存:
存在内存中的临时数据 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询 从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题为什么使用缓存:
减少和数据库的交互此数,减少系统开销,提高系统效率 什么样的数据能使用缓存: 经常查询并且不经常改变的数据2、MyBatis缓存
3、一级缓存
测试步骤
开启日志 测试在一个Session中查询两次相同的记录 查看日志输出缓存失效的情况:
查询不同的东西 增删改操作,可能会改变原来的数据,所以必定会刷新缓存 查询不同的Mapper.xml 手动清理缓存sqlsession.clearCache(); //手动清理缓存
小结:一级缓存默认是开启的,只在一次SqlSession中有效,也就是拿到连接到关闭连接这个区间段
一级缓存就是一个Map
4、二级缓存
步骤:
开启全局缓存
<!--显式的开启全局缓存-->
<setting name="cacheEnabled" value="true"/>
在要使用二级缓存的Mapper中开启
<!--在当前Mapper.xml中使用二级缓存-->










