- MyBatis中使用缓存来提高其性能
- 当查詢数据时, 会先从缓存中取出数据,如果缓存中没有,再到数据库当中查询
- MyBatis中的缓存分为两种:一级缓存和二级缓存
- 一级缓存是sqlSession级别的,二级缓存是mapper级别的
- 本地缓存 (默认开启)
- 在sqlSession没有关闭之前,再去查询时, 会从缓存当中取出数据,不会重新发送新的sql
- 如果在查询之前,执行了增\删\改 缓存就会夨效
- 如果两次的查询条件不一样,缓存也会失效
- 如果两个查询在不同的sqlsession当中
- 全局作用域缓存 一个namespace对应一个缓存
- 如果会话关闭,一级缓存的数据會被保存到二级缓存中
- 不同namespace查出的数据 ,会放到自己对应的缓存中
- 1.确保在配置文件当中开启二级缓存 Mybatis为了加快获取速度,会直接将缓存的引用將给用, 不安全, 速度快
非只读,有可能修改数据
Mybatis会利用序列化和反序列化复制一份给你 速度慢些
size 可以存放多少个元素
type 可以用来指定自定义的缓存
- 查询的数据都会先放到一级缓存当中
- 只有会话关闭,一级缓存中的数据才会转称到二级缓存中
- 如果二级缓存中没有,就去找一级缓存
- 如果一級缓存中也没有就去到数据库当中查询
你知道的越多你不知道的越多。
有道无术术尚可求,有术无道止于术。
如有其它问题欢迎夶家留言,我们一起讨论一起学习,一起进步