短视频
2026/4/28大约 2 分钟面试题面试题
来源:短视频
面试官又出难题了:MyBatis一二级缓存有什么区别? 大家好,我是JJ
其实这道面试题说难也不难,说容易也不容易,主要是看大家在平常工作中有没有积累相关的 mybatis 经验,
想要回答这个问题,我们得先搞清楚什么一级缓存,二级缓存。
首先,一级缓存是在同一个会话里自动开启的缓存机制,它主要用于优化查询操作的速度。
当你执行一次查询后,MyBatis 会把结果存起来,这样下次再查询相同的数据时,就可以直接从缓存里面获取,而不需要再次访问数据库。
只要会话没有结束,这个缓存就一直有效,但它仅在当前会话内起作用。
而二级缓存是用来跨会话共享数据的,不同的会话也能使用同样的缓存数据,这可以进一步减少数据库的访问次数。
不过,二级缓存需要手动配置才能开启的,而且它可以将数据存储到文件系统或者分布式缓存中,这样多个会话就可以共享同样的缓存数据了。
现在我们在来看 一级缓存与二级缓存的区别
首先是作用范围,一级缓存只在一个会话内部有效,而二级缓存则可以在不同会话之间共享数据。
其次,一级缓存是默认开启的,不需要特别设置,而二级缓存需要手动配置才能生效。
此外,缓存失效的机制也不同,一级缓存会在会话结束时清空,而二级缓存可以根据具体的配置来失效和更新。
总的来说,一级缓存适合在单个会话内共享数据,而二级缓存适合在多个会话之间共享数据。不过,记住二级缓存需要手动设置才能使用。