zoukankan      html  css  js  c++  java
  • MyBatis性能优化

    MyBatis缓存机制原理

    MyBatis缓存机制原理是将第一次从数据库SQL查询的结果数据保存到缓存(内存中),当下一次SQL查询和第一次相同,如果缓存中有数据则直接获取,而不再从数据库获取,从而减少数据库访问频率,大大提升数据库性能。


    一级缓存(Sqlsession级别)

    • 一级缓存是Sqlsession级别的缓存,不同的Sqlsession对象之间的缓存数据时互不影响的。
    • 当Sqlsession对象释放后,该Sqlsession对象中的一级缓存也就不存在了。

    二级缓存(Mapper级别)

    • 二级缓存是Mapper级别的缓存。多个Sqlsession对象SQL语句查询数据库结果会存放二级缓存区域,而多个Sqlsession对象可以共用二级缓存。
    • 二级缓存是多个Sqlsession对象共用的。其作用范围是Mapper的同一个namespace,不同的Sqlsession对象两次执行相同namespace下的SQL语句,第一次执行会将数据库中查询结果数据存储到二级缓存中,第二次会从二级缓存中获取数据,而不再从数据库中获取,从而提高效率。

    MyBatis 缓存使用注意事项

    • 只能在只有单表操作的表上使用缓存

    • 查询操作远大于更新,插入和修改查找操作的情况下使用缓存

    • 避免使用二级缓存(多表操作)

      多表查询一定不能使用二级缓存,会导致查询结果不正确,出现脏数据。



    MyBatis延时加载

    延时加载又叫懒加载(也叫按需加载),也就是说先加载主表信息,需要的时候,再去加载从表信息。代码中有查询语句,当执行到查询语句时,并不是马上去数据库中查询,而是根据设置的延时策略将查询向后推迟。


    延时加载的作用

    延时加载只有在用到需要的数据才会真正执行查询操作,这样可以大大减轻数据库服务器的访问压力,提高数据库的性能。

  • 相关阅读:
    《一起》Alpha版软件使用说明
    意见评论
    评论总结
    项目评审
    对大神联盟博客的检查结果
    SmartCoder每日站立会议10
    SmartCoder每日站立会议09
    mac php环境启动
    gulp工具rename
    gulp图片压缩
  • 原文地址:https://www.cnblogs.com/tantanli/p/13807741.html
Copyright © 2011-2022 走看看