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

    -----------------------siwuxie095

       

       

       

       

       

       

       

       

    MyBatis 一级缓存

       

       

    1、一级缓存:基于 PerpetualCache 的 HashMap 存储,

    其作用域为 session,也被称为局部缓存

       

    「一级缓存是 SqlSession 级别的」

       

       

       

    2、一级缓存 当执行相同的 select 语句时,MyBatis 不

    执行 sql 语句,而是从缓存区命中,并返回结果

       

       

       

    3、原理:MyBatis 执行 select 语句时,首先去缓存区命中,

    如果命中,则直接返回结果,如果没有命中,则执行 sql 语

    句,从数据库中查询

       

       

       

    4、一级缓存默认开启,且无法关闭

       

       

       

    5、使用 SqlSession 的 clearCache() 方法可以强制查询不缓存

       

       

       

    6、在执行 insert、update、delete 语句时,会刷新缓存

       

       

       

       

       

    MyBatis 二级缓存

       

       

    1、二级缓存:默认也是基于 PerpetualCache 的 HashMap 存储,

    其作用域为 namespace,也被称为全局缓存

       

    「二级缓存是 SqlSessionFactory 级别的」

       

       

       

    2、二级缓存 同一个 namespace 中的 select 语句可以从缓存区

    命中。二级缓存是可以跨 session 的,且在 session 提交 或 关闭之

    后才会生效

       

       

       

    3、开启二级缓存:在映射配置文件中加一个标签 <cache/> 即可

       

       

       

    4、开启二级缓存后:

       

    1)映射配置文件中所有 select 语句将会被缓存

       

    2)映射配置文件中所有 insert、update、delete 语句会刷新缓存

       

       

    注意:在 MyBatis 核心配置文件中,二级缓存的全局开关 cacheEnabled

    默认已开启,如果要禁用二级缓存,可以将 cacheEnabled 设为 false

       

       

       

       

    5、标签 <cache/> 有若干属性如下:

       

       

    上面的配置创建了一个 FIFO 缓存,并每隔 60 秒刷新,存数结果对象

    或列表的 512 个引用,而且返回的对象被认为是只读的,因此在不同

    线程中的调用者之间修改它们会导致冲突

       

       

       

       

       

    使用第三方缓存来实现二级缓存

       

       

    1、Ehcache

       

    http://www.mybatis.org/ehcache-cache/

       

    简介:EhCache 是一个纯 Java 的进程内缓存框架,具有快速精干

    等特点,是 Hibernate 中默认的 CacheProvider

       

       

       

    2、Memcached

       

    http://www.mybatis.org/memcached-cache/

       

    简介:Memcached 是一个高性能的分布式缓存框架,它基于内存

    key-value 存储,用来存储小块的任意数据

       

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    Cocos2dx for Windows Phone 8 发布
    Tiny Core Linux 4.7 发布
    走进 Google 的 Go 语言
    XCache 3.0.0 发布,PHP 性能提升方案
    Entropy Broker 2.0 发布,加密安全随机数
    Windows Phone 8 同步工具已提供,功能对比表
    PolarSSL 1.2.0 发布,SSL 加密库
    YUI 2 存在SWF漏洞,YUI 3 不受影响
    Google改进Dart并提供SDK
    Expression Blend实例中文教程(3) 布局控件快速入门Grid
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/8372975.html
Copyright © 2011-2022 走看看