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

    一级缓存:
    在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的SQL,MyBatis提供了一级缓存的方案优化这部分场景,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性能。
    local-cache-scope: session/statement
    session:一个MyBatis会话中执行的所有语句,都会共享这一个缓存
    statement: 只对当前执行的这一个Statement有效
     
    执行修改操作,一级缓存失效
    一级缓存会出现数据脏读
    MyBatis的一级缓存最大范围是SqlSession内部,有多个SqlSession或者分布式的环境下,数据库写操作会引起脏数据,建议设定缓存级别为Statement
    MyBatis一级缓存内部设计简单,只是一个没有容量限定的HashMap
     
    MyBatis一级缓存的生命周期和SqlSession一致
     
    二级缓存:
    多个SqlSession之间需要共享缓存
    catchenabled: true
    在分布式环境下,由于默认的MyBatis Cache实现都是基于本地的,分布式环境下必然会出现读取到脏数据,需要使用集中式缓存将MyBatis的Cache接口实现

  • 相关阅读:
    P2949 [USACO09OPEN]工作调度Work Scheduling
    P1279 字串距离 (动态规划)
    P2634 [国家集训队]聪聪可可
    点分治模板
    网站收集
    P1131 [ZJOI2007]时态同步
    P1446 [HNOI2008]Cards
    P1437 [HNOI2004]敲砖块
    蓝桥杯-k倍区间
    atom / vscode (配置c++环境流程)
  • 原文地址:https://www.cnblogs.com/jsersudo/p/12744341.html
Copyright © 2011-2022 走看看