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

    三:

      一:cache,mybatis将某些数据保存于内存中;

      二:一级缓存;二级缓存;

      三:提高系统的性能(前提:缓存的命中率要高,如果低,就没有意义);

    一级缓存:

      一:本地缓存;

      二:在参数和sql完全一样的情况下,SqlSession不会每次都发送sql到数据库查询数据,浪费资源,于是在没有声明需要刷新的情况下,mybatis会在第一次执行sql时,将查询到的数据保存在内存中,以备二次使用;(如果N次需要查询的结果都是一样,那就可以将数据保存在内存中,以备使用,N:可以是两次或者多次,不是固定的,是相对的,相对于用和不用所带来的性能影响;故兵无常势,水无常形;能因敌变化而取胜者,谓之神);

      三:所有的增删改都不缓存;相对于同一个SqlSession的缓存而已;

    二级缓存:

      一:全局缓存;

      二:基于namespace级别的缓存,一个名称空间,对应一个二级缓存;一个会话查询一条数据,该数据会被放到一级缓存中,但是当该缓存关闭时,我们还需要数据,于是将一级缓存的数据保存到二级缓存中。

      三:新的会话查询信息也可以从二级缓存中得到;不同的mapper查询出来的数据保存在对应的缓存(map)中;

    开启缓存方式:

      一:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.nbg.dao.UserMapper">
        <cache
                eviction="FIFO"
                flushInterval="60000"
                size="512"
                readOnly="true"/>
    </mapper>

      二:

    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>

      三:

    <select id="getUserById" resultType="User" useCache="true">/select>

     自定义缓存:eacache;

  • 相关阅读:
    机器学习初篇(0.0)
    MQTT 入门介绍
    《八极拳谱》(李书文)
    Golang实战群:日志的处理机制
    【转】火山引擎 Redis 云原生实践
    【转】7000字前端性能优化总结 | 干货建议收藏
    微信小程序canvas绘制圆角边框
    【转】语义化版本 2.0.0
    Verdaccio私有 npm 服务器搭建及其配置
    【转】根据条件配置多个npm仓库
  • 原文地址:https://www.cnblogs.com/NBG-SDL/p/14098075.html
Copyright © 2011-2022 走看看