对于每次查询,先去缓存中找数据,如果在缓存中,直接从缓存中取数据;如果不在缓存中,从数据库取数据,并将数据存入缓存。可以大幅提高性能。

1. 一级缓存

  一级缓存是SqlSession级别的缓存。一个sqlSession对象,维护一个缓存(HashMap),不同的sqlSession之间的缓存互相独立。

  当一个sqlSession结束后,对应的一级缓存就失效了。

       Mybatis默认开启一级缓存。

2. 二级缓存

  二级缓存是Mapper级别的缓存,多个sqlSession共享一个二级缓存,二级缓存是跨SqlSession的。

      多个sqlSession去操作同一个mapper的sql语句,数据存入二级缓存。

    Mybatis默认没有开启二级缓存,需要在setting全局参数中配置开启。

Mybatis Cache(一级缓存、二级缓存)

相关文章:

  • 2021-04-17
  • 2021-04-27
  • 2021-05-21
  • 2022-12-23
猜你喜欢
  • 2021-09-18
  • 2022-12-23
  • 2022-01-20
  • 2021-11-19
  • 2021-12-20
  • 2021-06-26
相关资源
相似解决方案