阅读量:2
MyBatis一级缓存和二级缓存的作用如下:
一级缓存:一级缓存是MyBatis默认开启的,它是SqlSession级别的缓存,也叫本地缓存。当在同一个SqlSession中执行相同的查询语句时,如果没有执行增删改操作,MyBatis会从缓存中直接获取结果,而不需要再次向数据库发送查询请求,从而提升性能。一级缓存的作用范围很小,仅限于同一个SqlSession中。
二级缓存:二级缓存是SqlSessionFactory级别的缓存,也叫全局缓存。当多个SqlSession共享同一个SqlSessionFactory时,它们可以共享同一个二级缓存。二级缓存可以跨越SqlSession,从而提供了更高的缓存效果。当执行查询语句时,MyBatis先从二级缓存中查找数据,如果找到了就直接返回,没有找到再去数据库查询,并将查询结果存入二级缓存中。二级缓存的作用范围更大,可以跨越多个SqlSession。
总而言之,一级缓存和二级缓存都可以提高查询性能,减少数据库访问次数,但一级缓存的作用范围更小,仅限于同一个SqlSession,而二级缓存的作用范围更大,可以跨越多个SqlSession。