MyBatis缓存原理

后端持久化数据层学习笔记

  1. 为什么要用缓存
    SqlSession 对象中创建一个本地缓存,每次查询都将优先从缓存内查找(一级缓存),如果无法找到,则将从数据库中查找。这有助于提高系统效率。
  2. 缓存原理
    SqlSession 创建后,MyBatis 将会为其创建 Executor 对象,缓存信息在 Executor 对象中维护,并向外提供 Cache(一级缓存)及其接口,提供对 Cache 中存储信息的相关操作。
    如果用户配置了二级缓存开启(cacheEnabled = true),则会在 SqlSession 创建时添加 装饰器CachingExecutor),作为优先访问接口(此时访问数据优先次序为 二级缓存 > 一级缓存 > 数据库)。
    详细过程如下:
    CachingExecutor 作为优先查询对象,首先判断用户需要信息是否存在该对象,如果不在,则调用真正的 Executor(一级缓存)进行查询。如果找到,则将其放入 Cache 中,再返回给用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值