摘要:问题解析因为热爱,所以拼搏。如何解决问题本身给出解决方案,就是延迟加载。延迟加载延迟加载会解决上述的问题,也就是在个级联表的情况下,只加载需求的数据库表数据。在特定的关联中,使用属性覆盖该内容的功能。
Mybatis N+1问题解析
因为热爱,所以拼搏。 --RuiDer
前导必备Mybatis
数据库
级联
N+1问题??N+1问题来源于数据库中常见的级联技术,即N个数据库表形成关联关系,当再增加一个关联表时,也就是N+1个级联关系,由于某些时候,我们并不需要加载数据库的所有数据,而是某一个数据库表中数据,这时Mybatis会自动加载所有表的数据,多执行几条无关sql语句,会造成数据库资源的浪费以及系统性能的下降,这就是级联表的缺点。如何解决N+1问题
Mybatis本身给出解决方案,就是延迟加载。延迟加载
延迟加载会解决上述的N+1问题,也就是在N+1个级联表的情况下,只加载需求的数据库表数据。这是互联网发展的需求,性能提升的途径。如何配置Mybatis完成延迟加载
全局配置: - lazyLoadingEnabled true/false - aggressiveLazyLoading true/false lazyLoadingEnabled:延迟加载的全局开关,当开启时,所有关联都会延迟加载。在特定的关联中, 使用fetchType属性覆盖该内容的功能。fetchType将在后面介绍。 aggressiveLazyLoading:是层级延迟加载开关,什么意思呢?就是处于同一个层级的关联表会同 时延迟加载,或者同时被加载。 配置: 在Mybatis的全局配置中的setting标签中加入设置全局配置的缺点
上面的配置属于全局配置,会出现一个问题,同一个层级的级联表也存在需求性的差异,同一级的某个数据库表的数据或许不是我们经常使用的,那么上述的配置也会影响系统的性能。
全局配置的优化 --- fetchType属性Mybatis使用fetchType属性解决全局配置的缺点。fetchType出现在级联元素association,collection中,它存在两个值
- eager:获得当前POJO后立即加载对应的数据。 - lazy:获得当前POJO后延迟加载对应的数据。 配置:
我的github
我的博客
CSDN
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71404.html
摘要:简介我从七月份开始阅读源码,并在随后的天内陆续更新了篇文章。考虑到超长文章对读者不太友好,以及拆分文章工作量也不小等问题。经过两周紧张的排版,一本小小的源码分析书诞生了。我在写系列文章中,买了一本书作为参考,这本书是技术内幕。 1.简介 我从七月份开始阅读MyBatis源码,并在随后的40天内陆续更新了7篇文章。起初,我只是打算通过博客的形式进行分享。但在写作的过程中,发现要分析的代码...
摘要:如问到是否使用某框架,实际是是问该框架的使用场景,有什么特点,和同类可框架对比一系列的问题。这两个方向的区分点在于工作方向的侧重点不同。 [TOC] 这是一份来自哔哩哔哩的Java面试Java面试 32个核心必考点完全解析(完) 课程预习 1.1 课程内容分为三个模块 基础模块: 技术岗位与面试 计算机基础 JVM原理 多线程 设计模式 数据结构与算法 应用模块: 常用工具集 ...
摘要:前言嗨,小伙伴们,这篇博文将带大家手写,让大家对的核心原理以及工作流程有更加深刻的理解。模块顾名思义,就是框架配置类,用于解析配置文件加载相关环境。配置模块这里的对框架的配置使用了简单的,主要原因还是简单易懂然后节省时间。 前言 (。・∀・)ノ゙嗨,小伙伴们,这篇博文将带大家手写mybatis,让大家对mybaits的核心原理以及工作流程有更加深刻的理解。在上篇Spring-Mybat...
摘要:我认为学习框架源码分为两步抓住主线,掌握框架的原理和流程理解了处理思路之后,再去理解面向对象思想和设计模式的用法目前第一步尚有问题,需要多走几遍源码,加深下理解,一起加油 这篇文章我们来深入阅读下Mybatis的源码,希望以后可以对底层框架不那么畏惧,学习框架设计中好的思想; 架构原理 架构图 showImg(https://segmentfault.com/img/remote/...
摘要:的简称,运行环境,为的运行提供了所需环境。分割字符串,返回一个分割后的字符串数组。线程安全是线程安全的,而是非线程安全的。迭代器取代了集合框架中的,迭代器允许调用者在迭代过程中移除元素。 本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Clou...
阅读 2072·2021-11-18 10:07
阅读 3484·2021-09-04 16:48
阅读 3194·2019-08-30 15:53
阅读 1216·2019-08-30 12:55
阅读 2425·2019-08-29 15:08
阅读 3101·2019-08-29 15:04
阅读 2858·2019-08-29 14:21
阅读 2891·2019-08-29 11:21