mybatis的延迟加载真的会提高效率吗

延迟加载的本质就是先执行一条简单的sql,按需再去执行另一条sql,
可是,假如查询订单、用户信息,按照延时加载的来弄,就是先查出订单的信息,当getUsers()时再按订单里面的用户id去查用户信息,但是这样子不还是要去数据库查询2次吗,
个人认为,效率上并没有提高啊,而且比不延迟加载还多了一次数据库访问的次数。

------上面是我个人的理解,不知道是不是我理解错了,希望各位大神能帮帮我!

2个回答

如果 不做延时加载是不是就得写一个连接查询SQL,如果数据量大的话,连接查询是很费时的。SQL优化准则就有一条是尽量少用连接。
另外如果你的id字段做了索引,延时加载效率还是很高的、

的确,如果真的需要使用到关联数据,即使延迟加载,还是会查询两次的,只是两次查询的时机不相同而已。
这种关联关系,有些时候,我们使用关联对象和主对象使用的时机不同,所以需要考虑延迟加载。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Object.clone()会提高效率吗?
代码如下,为什么使用了clone()方法花的时间更多?rn[code=Java]rnpublic static void main(String[] args) rn List list = new ArrayList();rn List list2 = new ArrayList();rn long startTime,endTime;rn System.out.println(startTime=System.nanoTime());rn SetBean set = new SetBean();rn for(int i=0;i<50;i++)rn set = (SetBean) set.clone();rn set.setValue(1.0+i);rn list.add(set);rn rn System.out.println(endTime=System.nanoTime());rn System.out.println(endTime-startTime);rn System.out.println("*****************");rn System.out.println(startTime=System.nanoTime());rn for(int i=0;i<50;i++)rn SetBean set2 = new SetBean();rn set2.setValue(1.0+i);rn list2.add(set2);rn rn System.out.println(endTime=System.nanoTime());rn System.out.println(endTime-startTime);rn rn[/code]rnrn[code=Java]rnpublic class SetBean implements Cloneablern private String color;rn private Double value;rn public String getColor() rn return color;rn rn public void setColor(String color) rn this.color = color;rn rn public Double getValue() rn return value;rn rn public void setValue(Double value) rn this.value = value;rn rn @Overridern protected Object clone() rn SetBean set = null;rn try rn set = (SetBean)super.clone();rn catch (CloneNotSupportedException e) rn e.printStackTrace();rn rn return set;rn rnrn[/code]
static final会提高效率吗
问个简单的问题 在写普通的类 中的方法时候rn 定义方法 用static final会提高效率吗? rn如:rnprivate static final String A()rnrnrn
mybatis延迟加载
mybatis延迟加载
myBatis的延迟加载
延迟加载:在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。如果查询单表就可以满足需求,一开始先查询单表,当需要关联信息时,再关联查询,当需要关联信息再查询这个叫延迟加载。 mybatis中resultMap提供延迟加载功能,通过resultMap配置延迟加载。 配置mybatis支持延迟加载 设置项有: lazyLoadingEnabled:
mybatis 延迟加载
1 一对一延迟加载使用延迟加载的意义 在进行数据库查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表查询速度要快 如果查询单表就可以满足需求,一开始先查询单表,当需要关联信息时,再关联查询。当需要关联信息再查询 称为“延迟加载”配置mybatis延迟加载 需要配置的项 设置项 描述 允许值 默认值 lazyLoadingEnabled 全局性设置
Mybatis的延迟加载
Mybatis的延迟加载就是在resultMap的配置中多配置一个属性 第一步:创建dao层中的sellerDao类,在该类创建两个方法 selectSeller用来查询商家 getAllFood用来查询食物 package org.peter.dao; import org.peter.model.Food; import org.peter.model.Seller;
MyBatis延迟加载
用到的实体类:public class UserPo { private Integer id; private String username; private Date birthday; private String sex; private String address;public class Orders { private Integer
mybatis 延迟加载
mybatis 延迟加载 什么是延迟加载 延迟加载又叫懒加载,也叫按需加载,也就是说先加载主信息,需要的时候,再去加载从信息。代码中有查询语句,当执行到查询语句时,并不是马上去DB中查询,而是根据设置的延迟策略将查询向后推迟。 什么时候会执行延迟加载 配置之后在对关联对象进行查询时使用延迟加载。 延迟加载策略 直接加载 遇到代码中查询语句...
MyBatis 延迟加载
MyBatis中的延迟加载,也称作懒加载,是指在进行关联查询时,按照设置的延迟规则推迟对关联对象的select查询。 延迟加载可以有效的减少数据库压力。 MyBatis的延迟加载只是对关联对象的查询有延迟设置,对于主加载对象都是直接执行查询语句的。 MyBatis根据对关联对象查询的select语句的执行时机,分为三类:直接加载、侵入式延迟加载、深度延迟加载 直接加载:即不延迟加载,执行完
mybatis的延迟加载
<img src="https://img-bss.csdn.net/201904231511241615.png" alt="" />
【mybatis】【延迟加载】【mybatis的缓存机制】
延迟加载 默认不打开延迟加载 没有管理关联关系的对象,不会有代理对象 settings> setting name="lazyLoadingEnabled" value="true"/> setting name="aggressiveLazyLoading" value="false"/> sett
MyBatis多对多查询
-------------------siwuxie095                         MyBatis 多对多查询       以订单和商品为例,即 一个订单可以有多个商品, 一个商品可以属于多个订单    PS:这里需要订单详情作为中间表,以维护关系       需求如下:    根据订单号查询订单,并查出订单详情中的商品
mybatis 的延迟加载
mybatis 的延迟加载 (1)什么是延迟加载? 延迟加载,也称为懒加载(LazyLoding)。 当代码中执行到查询语句时,并不是直接到DB中执行select语句进行查询,而是根据设置好的延迟策略,将查询向后推迟。这就称为延迟加载。 使用延迟加载可以减轻DB服务器的压力。 resultMap中的association和collection标签具有延迟加载的功能
Mybatis延迟加载
1.延迟加载,也懒加载,推迟对关联对象的select查询,可以有效的减少数据库压力。 一级缓存: Mybatis一级缓存的作用于是同一个SqlSession,当使用同一个SqlSession来执行多次相同的sql语句时,会在第一次从数据库查询到数据存到缓存(内存),后面的再次查询会直接读取内存中的数据,从而提高查询效率。 测试: 1.配置完mybatis 2.当第一次读取数据,然后使程序沉睡10秒...
mybatis——延迟加载
------------------------------------------------SqlMapConfig.xml--------------------------------------------------------- xml version="1.0" encoding="UTF-8" ?> DOCTYPE configuration PUBLIC "-//my
Mybatis 延迟加载
延迟加载 懒加载,正真用到该对象时才会发送SQL 在Mybatis中,只针对关联对象才会有延迟,Hibernate中的延迟加载对本对象、单端关系、集合都起作用 全局开关:在配置文件中配置如下 &amp;lt;settings&amp;gt; &amp;lt;!--开启全局延迟加载--&amp;gt; &amp;lt;setting name=&quot;lazyLoadingEnabled&quot; value...
mybatis的延迟加载
&amp;lt;settings&amp;gt;     &amp;lt;setting name=&quot;lazyLoadingEnabled&quot; value=&quot;true&quot;/&amp;gt;      &amp;lt;setting name=&quot;aggressiveLazyLoading&quot; value=&quot;false&quot;/&amp;gt; &amp;lt;setting name=&quot;lazyLoadTriggerMethods&
【MyBatis】延迟加载
需求:查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。我们把对用户信息的按需查询,称作延迟加载。        所以延迟加载的理解即:先单表查询,当需要时,在从关联表去级联查询,大大提高数据库性能。 1.mapper.xml <!-- 实现对用户信息进行延迟加载 select:指定延迟加载需
MyBatis——【延迟加载】
延迟加载
Mybatis延迟加载:
Mybatis的延迟加载: * 在实际开发中,在查询账户时,账户的所属用户信息应该是随着账户时一起查询出来。[立即加载] * 查询用户时,账户的信息是随着用户的需要才加载出来。 [延迟加载/按需加载/懒加载] 隐患:List集合的元素个数无法预知,可能会因为数据量过大导致内存溢出。 概念: 1.延迟加载:在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)。在查询时,调用对方配置...
数据库的并行操作真的能提高效率吗?
谁有有测试结果吗?rnrn这里的并行操作都是指在单机上的,并非网络环境
真的没人会吗?真的没人会吗?
请问该如何调用外部程序的指定菜单栏的指定菜单项呢?我要的是用程序自动实现。是不是要用到键盘宏呢?是的话请问各位高手,应该如何实现呢?
jQuery LazyLoad图片延迟加载 真的能实现延迟加载吗
如题
【Mybatis】深入浅出Mybatis(十四)——延迟加载
一、前言      在前面的博客中,小编向大家介绍了级联查询,针对不同的类型(一对一,一对多)进行了不同的选择:      一对一的时候,我们可以选择resultType或resultMap,resultType要有一个和查询出来的字段对应的Model,而resultMap需要我们写一个resultMap,使用association连接两个表。      一对多的时候,我们使用resultMap比较
Mybatis的延迟加载和Mybatis的代码生成工具
1.Mybatis的延迟加载 使用延迟加载必须加入jar包 cglib cglib 3.2.5 sources 2.Mybatis的代码生成工具 官网:http://www.mybatis.org/generator/quickstart.html   在pom.xml中加入插件 org.mybatis.generator
SQL2008 的同义词,在查询的时候会提高效率吗?
SQL2008 的同义词,在查询的时候会提高效率吗?
你真的会搜索吗?
现实生活中,大家少不了使用搜索引擎。常用的搜索引擎有百度,谷歌,搜狗,有道等。 其中百度和谷歌是最常用的。由于谷歌退出中国市场和梯子的原因,国内使用百度搜索引擎的人比较多。 我两个引擎都在用,一些生活中的小事答疑之内的问题,百度能帮到你。如果遇到一些专业上的,学术上的问题,我会使用谷歌去搜索。两个引擎各有优势,百度搜索占领中国绝大部分的市场份儿,使用的用户也是非常庞大的。 如果搜索和查询生活...
你真的会暴力吗
Description 给你一个长度为n的数列,问你这个数列是不是一个完美数列。一个数列是完美数列当且仅当不存在两个不相交的子序列,元素的数值和相同。 Input 第一行一个整数t(t &amp;amp;lt;= 50),表示一共有t组。 每组第一行一个整数n(n&amp;amp;lt;=1e4)表示数列的长度为n, 接下来一行有n个整数ai(1&amp;amp;lt;=ai&amp;amp;lt;=1e5),表示数列中等每个元素。 (n的和&amp;amp;lt;=1e5)...
你真的会学习吗?
最近学习状态不佳,听老师又说到一篇文章,叫 《为什么有人拥有十年经验,但成不了专家?而有的人2年时间,足够表现卓越?》感触颇深。不知道你会不会有以下这些情况 1.敲代码了,运行不成功啊,调试半天也找不到原因,感觉头大了啊!! 2.安装配置挺简单的事吧,半天也弄不好,不是这出错就是那又毛病,我敲学生那会反正是一堆事,现在到了机房了,好一些了 3.最近看大家都在看自考,一看数据结构,字挺多,代...
多线程,真的没有人会吗?
我是搞vc的,因为工作需要,开始搞 vb,用的是vb6.0 竟然不能做多线程,受不了!rn由谁会做?多线程,真的没有人会吗?
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数