zoukankan      html  css  js  c++  java
  • Mybatis缓存

    一级缓存

    • 一级缓存为SqlSession缓存,二级缓存为SqlSessionFactory缓存,缓存仅作用于同一namespace
    • SqlSession缓存可以刷新(清空),<select>标签配置中使用flushCache="true"属性
    • 缓存是相互隔离的,不同SqlSession对象之间不共享缓存
    • 数据发生变动后会清除缓存,在数据变动频繁的地方不适宜使用缓存
    • Mybatis会通过算法生成键,与查询结果数据一起放入Map中,读缓存就是读取Map

    二级缓存

    • 一级缓存为SqlSession缓存,二级缓存为SqlSessionFactory缓存,缓存仅作用于同一namespace
    • SqlSessionFactory有两种开关
    • 总开关在mybatis-config.xml中<setting name="cacheEnabled" value="true"/>默认打开
    • 分开关在对应的namespace中,默认关闭,使用<cache/>标签即可打开,其信徒众多
    1. type:缓存的实现"类型",默认PERPETUAL,org.apache.ibatis.cache.impl.PerpetualCache,可扩展或替换
    2. eviction:"撤退"的方式,LRU(最近最少使用,默认)、FIFO(先进先出)、SOFT(gc软引用)、WEAK(gc弱引用)
    3. flushInterval:刷新间隔,默认不设置,只有在数据变动时自己刷新;当设置后则按时间刷新
    4. size:缓存数量,默认1024
    5. readOnly:默认false,false表示可写,会反序列化复制一份对象进行读写,较为安全
    6. blocking:阻塞,默认false,不阻塞的方式在并发查询时可能会穿透缓存查询数据库,true会在查询前加锁保证若命中就不查询
  • 相关阅读:
    网络--会话层、表示层、应用层
    Unix C
    操作系统原理
    TCP/UDP
    config OSX firewall programmatically
    Objective-C 浅谈
    OS X background process
    CreateProcessWithToken 1058 error
    WebBrowser keystroke
    MFC加载PNG图片并实现双缓冲
  • 原文地址:https://www.cnblogs.com/duduchong/p/13304099.html
Copyright © 2011-2022 走看看