mybatis 的一级、二级缓存
时间: 2023-08-01 16:13:37 浏览: 86
Mybatis 中的缓存分为一级缓存和二级缓存。
一级缓存是指在同一个 SqlSession 中,多次执行相同的 SQL 语句时,只会查询一次数据库,查询结果会被缓存在 SqlSession 内存中,以提高查询效率。一级缓存是 Mybatis 默认开启的,可以通过设置 SqlSession 的缓存级别来关闭。
二级缓存是指多个 SqlSession 共享的缓存,可以跨越多个 SqlSession 对象,以提高系统的性能。在使用二级缓存时,需要在 SQL 映射文件中配置 cache 标签,并且在 mybatis-config.xml 中开启二级缓存。需要注意的是,二级缓存中存储的是经过序列化后的数据,因此需要保证缓存中的数据是可序列化的类型。
需要注意的是,一级缓存和二级缓存的使用需要根据具体的业务场景进行决策,过度使用缓存可能会带来脏数据等问题。
相关问题
mybatis一级二级缓存
Mybatis一级缓存是指在同一个SqlSession中,对同一个查询语句的查询结果会被缓存起来,下次再执行相同的查询语句时,会直接从缓存中获取结果,而不是再去查询数据库。而二级缓存是指在多个SqlSession中,对同一个查询语句的查询结果会被缓存起来,下次再执行相同的查询语句时,会直接从缓存中获取结果,而不是再去查询数据库。需要注意的是,二级缓存需要手动开启和配置。
简述MyBatis一级二级缓存
MyBatis中提供了两级缓存:一级缓存和二级缓存。
一级缓存是指SqlSession级别的缓存,它默认是开启的。一级缓存的作用范围是在同一个SqlSession中,当程序执行了查询操作之后,查询结果会被缓存在SqlSession中,当再次执行相同的查询操作时,程序会先从SqlSession缓存中获取查询结果,而不是直接查询数据库,从而提高了查询的效率。
二级缓存是指SqlSessionFactory级别的缓存,它是跨SqlSession的,多个SqlSession可以共享同一个二级缓存。二级缓存的作用是在多个SqlSession之间共享缓存数据,当一个SqlSession执行查询操作之后,查询结果会被缓存在二级缓存中,当另外一个SqlSession执行相同的查询操作时,它会先从二级缓存中获取数据,而不是直接查询数据库,从而提高了查询的效率。
需要注意的是,二级缓存默认是关闭的,需要在MyBatis的配置文件(mybatis-config.xml)中进行配置才能开启。同时,为了避免数据的不一致性,建议只对那些不经常发生变化的数据进行缓存,对于经常变化的数据不要进行缓存。
阅读全文