Mybaits缓存机制

一级缓存

一级缓存是sqlSession级别的,当操作数据库时需要创建sqlSession对象,每个sqlSession对象中都有一个hashMap来保存缓存数据,并且每个sqlSession对象中的hashMap都互相不影响。一级缓存是默认开启的。
当同一个sqlSession对象执行多次相同的sql语句时,第一次去数据库里面查询数据,然后将查询到的结果保存在缓存区里面,第二次就直接去缓存区里面查找数据,查到后就直接返回,提高查找的效率,降低数据库的压力。
当某个sqlSession对象执行了sql的insert,delete,update时,并执行了commmit()方法,就会清空缓存,保证缓存里面保存的都是最新的数据。一级缓存是跟sqlSession对象绑定在一起的,如果sqlSession对象消失了,那缓存也会被删除。

二级缓存

二级缓存是Mapper级别的,是被sqlSession共享的,作用域是Mapper的同一个namespace,当不同的sqlSession对象在同一个namespace执行相同的sql语句时,第一次去数据库查询数据,并将查询到的结果保存在缓存里面,之后就直接去缓存里面查询。二级缓存是默认关闭的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值