一级缓存:
默认开启,作用域是SqlSession,不同的Sqlsession的缓存是不共享的。
二级缓存:
需要配置,作用域是mapper,多个Sqlsession之间是可以共享的。
二级缓存的使用需要注意insert、update、delete操作清空缓存,否则真实的数据与缓存数据将不一致;另外关于缓存的命中率问题,相同查询条件在实际业务场景中多次出现的几率不高,也就是说缓存的命中率是开发前需要准确评估的。缓存中的key由sql语句、条件等信息组成,一般业务查询中会存在查询条件,而越多的查询条件,查询条件的值发生变化的可能就越高,往往带来的结果就是缓存 命中率越低。