一级缓存本地缓存 默认就是一级缓存
基于PerpetualCache的HashMap本地缓存,sqlSession级别 作用与单个线程
当更新或者sql会话关闭的时候本地缓存会清空
当更新的时候 由于我们的id主键唯一 所以主键的话被修改 mysql会感知 感知了就会去清空一级缓存
类似临时变量
二级缓存
有本地缓存对应就是整个应用的缓存
SqlFactory级别 作用整个应用 因为sql默认的就是只有一个sqlfactory 所以这个时候其实实际上也就是全局的作用
PerpetualCache永久缓存
PerpetualCache
是一个永久缓存类,是 MyBatis 中用于缓存 SQL 语句执行结果的一个组件。
该类继承自 AbstractCache
类,实现了永久存储缓存的功能。在 MyBatis 中,PerpetualCache
类通常是作为二级缓存的默认实现类,可以将查询结果保存在内存中,从而提高查询效率。
与其他缓存类不同,PerpetualCache
不会清除缓存内容,因此一旦缓存被初始化后,其中的数据将一直存在于缓存中,直到应用程序关闭或手动清除缓存。
对于一些数据更新频繁的业务场景,建议选用其它缓存策略,如 LRU 策略、FIFO 策略等。