MyBatis的缓存机制
-
缓存提高查询效率 提升系统的运行速度
-
mybadis中的二级缓存
-
一级本地缓存
- 与数据库同一次会话期间查询到的数据会放到本地缓存,若之后需要相同的数据则直接从缓存中拿
-
一级缓存失效的情况
- sqlSession不同
- sqlSession相同但查询语句不同
- sqlSession 相同 查询语句相同 但两次查询之间执行了增删改
- sqlSession相同,手动清空了一级缓存
-
二级全局缓存
- 基于namespace级别的缓存,一个namespace对应一个二级缓存
- 一个会话查询一条数据该数据会被放在当前会话的一级缓存中
- 若会话关闭或提交后则一级缓存中的数据会被保存到二级缓存中,新的会话信息可以参照二级缓存 (只有在mapper中使用cache标签才会存在二级缓存)
- 不同namespace查出的数据会放在自己对应的缓存中(map)
-