缓存
为什么使用缓存
减少和数据库交互的次数,提高系统效率
什么情况下使用缓存
经常查询,但是不经常改变的数据
MyBatis缓存
MyBatis默认定义了一级缓存和二级缓存
一级缓存
一级缓存也称为本地缓存,与数据库同一会话期间查询到的数据会放在本地缓存中
二级缓存
二级缓存也称为全局缓存,一级缓存作用域低;二级缓存是基于namaspace级别的缓存,一个名称空间对应一个二级缓存
工作机制:
- 一个会话查询一条数据,这个数据就会被放在当前会话的一级缓存中
- 如果当前会话关闭了,这个会话对应的一级缓存就没了,所以在会话关闭的时候,将一级缓存的数据存到二级缓存
- 新的会话查询数据时,就可以从二级缓存中获取内容