一级缓存:存在于同一个SqlSession生命周期中,在同一个SqlSession中,MyBatis会把执行的方法,SQL语句和参数通过算法生成缓存的值,将键值和结果放在一个Map中;
不同的SqlSession 之间的缓存是相互隔离的;
同一个SqlSession中,可以通过配置使得在查询前清空缓存,任何的修改,删除,插入语句都会清空缓存。
二级缓存:存在同一个SqlSessionFactory生命周期中;
缓存是以namespace为单位的,不同的namespace的操作互不影响,更新时会刷新缓存,同样以namespace为单位更新;
使用场合是在查询频率很高,并且更新频率低的情况下使用;