zoukankan      html  css  js  c++  java
  • Mybatis延迟加载, 一级缓存、二级缓存

    延迟加载

    概念:MyBatis中的延迟加载,也称为懒加载,是指在进行关联查询时,按照设置延迟规则推迟对关联对象的select查询。延迟加载可以有效的减少数据库压力。

    注意:MyBatis的延迟加载只是对关联对象的查询有延迟设置,对于主加载对象都是直接执行查询语句的。

    加载时机

    直接加载:执行完对主加载对象的select语句,马上执行对关联对象的select查询。

    侵入式延迟:执行对主加载对象的查询时,不会执行对关联对象的查询。但当要访问主加载对象的详情时,就会马上执行关联对象的select查询。即对关联对象的查询执行,侵入到了主加载对象的详情访问中。也可以这样理解:将关联对象的详情侵入到了主加载对象的详情中,即将关联对象的详情作为主加载对象的详情的一部分出现了。

    深度加载:执行对主加载对象的查询时,不会执行对关联对象的查询。访问主加载对象的详情时也不会执行关联对象的select查询。只有当真正访问关联对象的详情时,才会执行对关联对象的select查询。

    侵入式延迟加载配置方法:

    修改主配置文件的,将延迟加载开关lazyLoadingEnabled开启(置为true),将侵入式延迟加载开关aggressiveLazyLoading也开启(置为true,默认为true)。
            <setting name="lazyLoadingEnabled" value="true"/>
            <!--配置侵入式延迟加载   默认为false
                侵入式:默认只会执行主加载SQL,那么当访问主加载对象的详细信息时才会执行关联对象的SQL查询
                深度延迟:默认只执行主加载SQL,那么当调用到主加载对象中关联对象的信息时才会执行关联对象的SQL查询
            -->
            <setting name="aggressivelazyLoading" value="true"/>

    深度延迟加载:

    修改主配置文件的,将延迟加载开关lazyLoadingEnabled开启(置为true),将侵入式延迟加载开关aggressiveLazyLoading关闭(置为false)。
            <setting name="lazyLoadingEnabled" value="true"/>
            <!--配置侵入式延迟加载   默认为false
                侵入式:默认只会执行主加载SQL,那么当访问主加载对象的详细信息时才会执行关联对象的SQL查询
                深度延迟:默认只执行主加载SQL,那么当调用到主加载对象中关联对象的信息时才会执行关联对象的SQL查询
            -->
            <setting name="aggressivelazyLoading" value="false"/>

    注意:该延迟策略也是一种延迟加载,需要在延迟加载开关lazyLoadingEnabled开启时才会起作用。若lazyLoadingEnabled为false,则aggressiveLazyLoading无论取何值,均不起作用。

    一级缓存

    结论:

    Mybatis框架天然集成一级缓存
    一级缓存查询依据为SQLID+SQL语句
    增删改会清空一级缓存

     

     二级缓存

    配置二级缓存

     

    增删改对二级缓存的影响

    增删改同样会清空二级缓存

     结论:

    二 级缓存不比一级缓存,要在configuration.xml中手动开启。
    二级缓存是全局应用级别的缓存,即使关闭了session 仍能使用。
    如果一个select标签想要局部关闭二级缓存, 需要设置useCache=false
    二级缓存不能使用注解方法配置
    如果在执行增删改操作的过程中不刷新缓存, 须设置flushCache=false
    着重点

        

  • 相关阅读:
    args 、kwargs不定参数通过列表、元组、字典传递
    内置函数_eval
    python模块之beautifulSoup
    修改jupyter notebook的默认浏览器
    jupyter notebook自动补全功能实现
    在资源管理器中添加一个共享的网络位置
    在word2010中添加带滚动条的文本框
    Outlook 2010中263邮箱客户端设置
    跳跃游戏
    螺旋矩阵
  • 原文地址:https://www.cnblogs.com/dabrk/p/11671982.html
Copyright © 2011-2022 走看看