2024年6月12日发(作者:)
mybatis一级缓存和二级缓存原理
MyBatis一级缓存和二级缓存是MyBatis框架提供的两种缓存
机制,用于提高数据读取性能。
一级缓存是指在MyBatis中SqlSession级别的缓存,它是默认
开启的。当SqlSession执行某个查询语句时,查询结果会被缓存到
一级缓存中。当再次执行同样的查询语句时,MyBatis会先从一级
缓存中查找结果,如果存在,则直接返回缓存中的结果,否则再去
数据库中查询。一级缓存的生命周期与SqlSession的生命周期一
致,只有在SqlSession关闭或清空缓存时才会失效。
二级缓存是指在MyBatis中全局范围的缓存,它是需要手动配
置的。当SqlSession执行某个查询语句时,查询结果会被缓存到二
级缓存中。当再次执行同样的查询语句时,MyBatis会先从二级缓
存中查找结果,如果存在,则直接返回缓存中的结果,否则再去数
据库中查询。二级缓存的生命周期与应用程序的生命周期一致,只
要应用程序没有关闭,二级缓存就会一直存在。
需要注意的是,一级缓存和二级缓存并不是完全相同的机制。
一级缓存是在SqlSession级别的缓存,而二级缓存是在全局范围的
缓存。一级缓存是默认开启的,而二级缓存需要手动配置。另外,
一级缓存只能用于同一个SqlSession中的查询,而二级缓存可以跨
SqlSession共享缓存。不过,由于二级缓存是全局缓存,所以需要
考虑并发访问的问题,仅在数据更新不频繁且数据量较小的情况下
才适用。
- 1 -
- 2 -


发布评论