MyBatis一级缓存和二级缓存有什么作用

642
2024/1/17 9:30:03
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

MyBatis一级缓存和二级缓存的作用如下:

  1. 一级缓存:一级缓存是MyBatis默认开启的,它是SqlSession级别的缓存,也叫本地缓存。当在同一个SqlSession中执行相同的查询语句时,如果没有执行增删改操作,MyBatis会从缓存中直接获取结果,而不需要再次向数据库发送查询请求,从而提升性能。一级缓存的作用范围很小,仅限于同一个SqlSession中。

  2. 二级缓存:二级缓存是SqlSessionFactory级别的缓存,也叫全局缓存。当多个SqlSession共享同一个SqlSessionFactory时,它们可以共享同一个二级缓存。二级缓存可以跨越SqlSession,从而提供了更高的缓存效果。当执行查询语句时,MyBatis先从二级缓存中查找数据,如果找到了就直接返回,没有找到再去数据库查询,并将查询结果存入二级缓存中。二级缓存的作用范围更大,可以跨越多个SqlSession。

总而言之,一级缓存和二级缓存都可以提高查询性能,减少数据库访问次数,但一级缓存的作用范围更小,仅限于同一个SqlSession,而二级缓存的作用范围更大,可以跨越多个SqlSession。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: mybatis中foreach标签的作用是什么