什么是Mybatis的一二级缓存?

一级缓存:

也称为 SqlSession 缓存,它存在于 SqlSession 中,只对一个会话内的数据进行缓存。如果在一个会话内多次执行同一条 SQL 查询语句,那么 MyBatis 只会在第一次查询数据库时实际执行 SQL 语句,其余查询则直接从缓存中获取数据。当会话关闭时,缓存就会被清除掉。

二级缓存:

也称为全局缓存,它存在于 SqlSessionFactory 中,多个会话之间可以共享缓存数据。当多个会话访问相同的 SQL 查询语句时,只要有一个会话查询到了数据并把结果放入二级缓存中,其他的会话就可以直接从缓存中获取数据。如果缓存中的数据过期或者数据发生变化时,MyBatis 会自动刷新缓存。

注意:

注意:在实际开发中,建议慎用缓存,特别是不要在有大量并发写操作的情况下使用缓存,以免出现数据不一致的问题。另外,需要注意的是,缓存策略是针对单表操作才有意义,多表操作通常不会考虑缓存。

相关推荐
C雨后彩虹7 分钟前
ConcurrentHashMap入门:高并发场景的 HashMap替代方案
java·数据结构·哈希算法·集合·hashmap
weixin_4250230015 分钟前
Spring boot 2.7.18使用knife4j
java·spring boot·后端
产幻少年18 分钟前
面试题八股
java
wanghowie19 分钟前
01.08 Java基础篇|设计模式深度解析
java·开发语言·设计模式
Data_agent31 分钟前
京东商品价格历史信息API使用指南
java·大数据·前端·数据库·python
Knight_AL35 分钟前
Java 17 新特性深度解析:记录类、密封类、模式匹配与增强的 switch 表达式对比 Java 8
java·开发语言
最贪吃的虎39 分钟前
Spring Boot 自动装配(Auto-Configuration)深度实现原理全解析
java·运维·spring boot·后端·mysql
Ahuuua42 分钟前
Spring Bean作用域深度解析
java·后端·spring
大学生资源网42 分钟前
基于Vue的网上购物管理系统的设计与实现(java+vue+源码+文档)
java·前端·vue.js·spring boot·后端·源码
qq_12498707531 小时前
基于微信小程序的私房菜定制上门服务系统(源码+论文+部署+安装)
java·spring boot·微信小程序·小程序·毕业设计·毕设