Appearance
MyBatis一二级缓存的区别?
首先,咱们说说一级缓存。在同一个会话里,MyBatis 会自动开启一级缓存。这个缓存就是为了优化查询操作的速度。一旦你执行了一个查询,MyBatis 会把结果先存起来,这样下次再查询相同的数据的时候,它就可以直接从缓存里拿,不用再去数据库查询了。只要会话不结束,这个缓存就一直有效,只在这一个会话里起作用。
然后,咱们看看二级缓存。这个缓存是用来跨会话共享数据的。不同的会话也能分享同样的缓存数据,这就意味着可以减少数据库的访问次数。不过,二级缓存需要手动配置开启,然后它可以把数据存到更持久的存储地方,比如文件系统或者分布式缓存里。这样多个会话就可以共享同样的缓存数据了。
区别嘛,首先就是作用范围。一级缓存只在一个会话内部有效,而二级缓存可以在不同会话之间共享数据。其次,一级缓存默认就是开启的,不需要特别设置。但是二级缓存需要你手动配置才能生效。然后就是数据共享性,因为一级缓存只在会话内有效,所以不同的会话无法共享缓存数据。但是二级缓存可以让不同的会话共享数据,这可以减少数据库的访问次数。最后,缓存失效的机制也不一样。一级缓存在会话结束时会被清空,而二级缓存可以根据一些设置来失效和更新。
那总的来说,一级缓存适合在一个会话里共享数据,而二级缓存适合多个会话之间的数据共享。但是要记得,二级缓存需要手动设置才能使用哦。根据实际情况,我们可以选择使用不同的缓存级别。
更新: 2023-08-29 16:55:06
原文: https://www.yuque.com/tulingzhouyu/db22bv/evaz5u56gss7xx7d
短视频
面试官又出难题了:MyBatis一二级缓存有什么区别? 大家好,我是JJ
其实这道面试题说难也不难,说容易也不容易,主要是看大家在平常工作中有没有积累相关的 mybatis 经验,
想要回答这个问题,我们得先搞清楚什么一级缓存,二级缓存。
首先,一级缓存是在同一个会话里自动开启的缓存机制,它主要用于优化查询操作的速度。
当你执行一次查询后,MyBatis 会把结果存起来,这样下次再查询相同的数据时,就可以直接从缓存里面获取,而不需要再次访问数据库。
只要会话没有结束,这个缓存就一直有效,但它仅在当前会话内起作用。
而二级缓存是用来跨会话共享数据的,不同的会话也能使用同样的缓存数据,这可以进一步减少数据库的访问次数。
不过,二级缓存需要手动配置才能开启的,而且它可以将数据存储到文件系统或者分布式缓存中,这样多个会话就可以共享同样的缓存数据了。
现在我们在来看 一级缓存与二级缓存的区别
首先是作用范围,一级缓存只在一个会话内部有效,而二级缓存则可以在不同会话之间共享数据。
其次,一级缓存是默认开启的,不需要特别设置,而二级缓存需要手动配置才能生效。
此外,缓存失效的机制也不同,一级缓存会在会话结束时清空,而二级缓存可以根据具体的配置来失效和更新。
总的来说,一级缓存适合在单个会话内共享数据,而二级缓存适合在多个会话之间共享数据。不过,记住二级缓存需要手动设置才能使用。
更新: 2024-06-20 16:32:34
原文: https://www.yuque.com/tulingzhouyu/db22bv/ygm4rsmx99inqvh6