您的位置:首页 > 其它

MyBatis:查询缓存关联及一级缓存

2018-01-09 17:17 176 查看


缓存工作原理

查询缓存介绍:

我们查询通过网络连接数据库服务器,会受网络带宽的限制,所以我们在应用服务器的内存中开辟块空间,即缓存空间,里面盛放的是多个查询结果。

缓存工作原理:执行查询时,先到缓存中查看有没有,如果有直接返回,没有再去DB中查询,查到的结果先给缓存,再给sql。

MyBatis查询缓存分类:

(1)、一级缓存(Sqlsession缓存):其默认是开启的,无法关闭,作用范围为namespace,生命周期同整个SqlSession相同

(2)、二级缓存:默认关闭,若使用必须开启,作用范围同一级缓存,但是生命周期和整个应用相同

一级缓存:

底层原理:一级缓存的底层实现是一个map,其value是查询结果,而key由三部分构成(hashcode+statementId+SQL语句)。每次select先到缓存中查找key,有则读取value并返回,没有去DB中查找,找到先组建后放到map中。

增删改对一级缓存影响:会刷新(清空)一级缓存【因为数据库修改了,若不刷新会拿到脏数据】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: