zoukankan      html  css  js  c++  java
  • mybatis缓存机制

    一级缓存(本地缓存,开启)

    二级缓存手动开启和配置,基于namespace级别的缓存

    一级缓存(本地缓存):sqlsession级别的缓存,一级缓存是一直开启的(与数据库同一个会话期间查询到的数会放在本地缓存中)

    相同数据只需从本地缓存中拿,不需要查询数据库

    一缓:1、sqlSession不同

                2、sqlSession相同,查询条件不同

                3、sqlsession相同,两次查询之间执行了增删改操作

                4、sqlSession相同,手动清除了一级(缓存清空)

    二级缓存(全局缓存):基于namespase级别的缓存,一个namespace对应一个二级缓存

                  工作机制:1、查询一条数据,这个数就会被放在当前会话的一级缓存

                                       2、如果会话关闭,一级缓存会被保存到三级缓存,新的会话查询信息

                                       3、sqlSession==EmployeeMapper====>Employee

    1、<setting   name="cacheEnabled"    value="true"  />

     2、在mapper.xml中配置使用二级缓存

            <cache    eviction="FIFO"     flushInterval="6000"   readOnly">

     3、pojo实现序列化接口

    eviction  :缓存的回收策略    LRU:最近最少使用

                                                        FIFO:先进先出

                                                        SOFT:软引用

                                                        WEAK:弱引用

    readonly:是否只读

                      true:只读,mybatis认为所有从数据的操作都是只读操作,不修改数据

                      false:非只读,mybatis获取的数据可能会被修改

    size:缓存存放多少元素

    type:指自定义缓存的全类名

    fluashInternal:缓存刷新间隔(缓存多长时间清空一次)

    效果:数据会从二级缓存中获取

                查出的数据都会被默认放在一级缓存中

               只有会话提交或者关闭以后,一级缓存中的数据才会转移到二级缓存

    缓存属性:1、cacheEnable:false  关闭缓存(二级缓存)一级缓存不可用

                         2、每个select标签都有useCache=”true“           false    一级缓存依然使用,二级缓存不可用

                         3、每个增删改标签flushcache="true"     增删改标签执行完成后清除缓存(一级缓存、二级缓存都清除)

                         4、查询标签flushcache="false"如果flushcache=true(每次查询都清除缓存)

                         5、sqlsession.clearcache():只清除session的一级缓存

                         6、localcachescope:本地缓存作用域:当前会话所有数据保存在当前缓存中

  • 相关阅读:
    上学路线 (Standard IO)
    舞台设置 (Standard IO)
    Circle (Standard IO)
    Number (Standard IO)
    Gift (Standard IO)
    圆周舞蹈 (Standard IO)
    竞赛排名 (Standard IO)
    奶牛排队 (Standard IO)
    奶牛晒衣服 (Standard IO)
    神奇的风 (Standard IO)
  • 原文地址:https://www.cnblogs.com/cye9971-/p/11164085.html
Copyright © 2011-2022 走看看