开发喵星球

MyBatis 的一级、二级缓存的区别是?

MyBatis 中有两级缓存:一级缓存(Local Cache)和二级缓存(Global Cache)。

一级缓存(Local Cache):

二级缓存(Global Cache):

区别:

  1. 范围不同: 一级缓存针对于单个 SqlSession,而二级缓存是跨 SqlSession 的,可以被多个 SqlSession 共享使用。
  2. 作用范围不同: 一级缓存是在同一个 SqlSession 内部有效,而二级缓存可以被多个 SqlSession 共享,能够跨会话共享缓存数据。
  3. 生命周期不同: 一级缓存的生命周期为一个 SqlSession,而二级缓存的生命周期与整个 Mapper 映射文件相关联。

在实际应用中,可以根据需求选择开启或关闭一级缓存和二级缓存,并根据业务特点合理使用缓存,避免数据不一致或缓存带来的问题。

Proudly powered by WordPress