MyBatis的缓存

发布时间 2023-11-29 17:22:47作者: 小蔡没烦恼

MyBatis的缓存机制能够有效地提高查询性能,提供两种缓存机制,分别是一级缓存(Local Cache)和二级缓存(Clobal Cache)。

  1. 一级缓存(Local Cache):
  • 范围:一级缓存是在SqlSession级别的缓存,即在同一个SqlSession中执行的SQL语句将会共享缓存。
  • 生命周期:一级缓存的生命周期与SqlSession的生命周期相同,当SqlSession关闭时,缓存将被清空。
  • 默认开启:一级缓存默认开启的,可以通过配置关闭。
  • 作用范围:以及缓存对于同一个SqlSession中相同查询是有效的,对于不同SqlSession或者在不同事务中是不生效的。
  1. 二级缓存(Global Cache):
  • 范围:二级缓存是在Mapper级别的缓存,即同一个namespace的Mapper共享缓存。
  • 生命周期:二级缓存的生命周期与整个应用的生命周期相同,在应用重启前一直有效。
  • 默认关闭:二级缓存默认是关闭的,需要在MyBatis的配置文件中进行配置开启
  • 作用范围:二级缓存对于同一个Mapper中的相同查询是有效的,对于不同的Mapper是不生效的