mybatis缓存

一、什么是缓存 ---内存中的数据

1.缓存来历:

cpu和磁盘的交互是非常慢的,会有很大的数据差,两者工作时间差距很大

通过内存存储数据,减少和磁盘的交互次数,提高效率

从磁盘加载到内存的数据叫做缓存,磁盘中不会消失,只是写入了内存中

2.什么数据适合当作缓存

经常被查询但不经常被修改的数据适合当作缓存保存在内存

二、mybatis缓存

数据库的数据在磁盘中,如果每次查询都去访问磁盘,效率会非常低,所以mybatis放入了内存中,大大减少了访问时间,提高了效率。

1.一级缓存(sqlSession缓存) ---默认开起

sqlSession对象---执行sql语句的最小单元

从磁盘查询到的数据保存在sqlSession本地缓存中(local cache)

user1和user2是同一个内存地址,说明没用重新创建对象。

如果不是相同的sqlSession对象,就不是同一个地址了,以此证明了是sqlSession缓存。

1.1一级缓存失效的情况

        1.使用了不同的sqlSession对象

        2.相同的sqlSession对象,但是查询条件不同

        3.相同的查询条件中间进行了增删改sql,缓存就会失效

        4.手动清除一级缓存 clearCache();

2.二级缓存-sqlSessionFactory缓存--存储的是数据而非对象

2.1、开启步骤

二级缓存中,两个mapper对象执行同一个sql语句,但是地址不同

2.2、映射文件中设置的标签参数

        1.eviction--回收策略

                LUR:最近最少使用的剔除

                FIFO:最开始的最先剔除(先进先出)

                软引用

                弱引用

        2.flushinterval--刷新间隔(毫秒级别)

        缓存中的数据进行保证与数据库的数据一致

        3.size--引用数目(可以缓存多少数据)默认1024

        4.readyOnly--只读(false和true)

        3、缓存查询顺序(前提是二级开启)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值