新概念超循环大表详解,在查询的优化中为什么要永远小表驱动大表?

极简大道 极简大道 2023-04-08 古诗词记忆 阅读: 191
摘要: 1.为什么要小表驱动大表呢类似循环嵌套for(int i=5;.......) {  for(int j=1000;......)  {} }如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作,如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗。这就是为什么要小表驱动大表。比如:我们在tb_dept_bigdata表中插入100条数据,在tb_emp_bigdata表中插入5000条数据。

1.为什么要小表驱动大表呢

类似循环嵌套

for(int i=5;.......)
{
 for(int j=1000;......)
 {}
}

如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作,如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗。这就是为什么要小表驱动大表。

比如:我们在tb_dept_bigdata表中插入100条数据,在tb_emp_bigdata表中插入5000条数据。



注:100个部门,5000个员工。tb_dept_bigdata(小表),tb_emp_bigdata(大表)。

①当B表的数据集小于A表数据集时,用in由于exists。

select *from tb_emp_bigdata A where A.deptno in (select B.deptno from tb_dept_bigdata B)

B表为tb_dept_bigdata:100条数据,A表tb_emp_bigdata:5000条数据。

用in的查询时间为:


经对比可看到,在B表数据集小于A表的时候,用in要由于exists,当前的数据集并不大,所以查询时间相差并不多。

②当A表的数据集小于B表的数据集时,用exists由于in。

select *from tb_dept_bigdata A where A.deptno in(select B.deptno from tb_emp_bigdata B);

用in的查询时间为:


将上面sql转换成exists:

select *from tb_dept_bigdata A where exists(select 1 from tb_emp_bigdata B where B.deptno=A.deptno);

用exists的查询时间:


由于数据量并不是很大,因此对比并不是难么的强烈。

附上结论截图:


.总结

下面结论都是针对in或exists的。

in后面跟的是小表,exists后面跟的是大表。

简记:in小,exists大。

对于exists

select .....from table where exists(subquery);

可以理解为:将主查询的数据放入子查询中做条件验证,根据验证结果(true或false)来决定主查询的数据是否得以保留。

其他相关

背书如何更快背出来,如何快速背完书秘诀,背诵有诀窍,这四个高效方法,让孩子轻松背书

作者: 极简大道 时间:2024-02-09 阅读: 60
英语差的学生,这样学习,高考跃进140一位从事10年语文教书的特级老师谈到:背诵其实不难,很多同学总是会陷入误区,掌握正确的方法,是解决背诵困难的正确途径。...
法考背诵版pdf,二十二遍背诵法,法考民诉法真题必背要点|厚大刘鹏飞老师

法考背诵版pdf,二十二遍背诵法,法考民诉法真题必背要点|厚大刘鹏飞老师

作者: 极简大道 时间:2024-02-04 阅读: 48
考试将近,厚大法考民诉法刘鹏飞老师特意为考生们整理了民诉法的真题必背要点,考前很有必要背一背哦#跟小飞侠背真题要点#12011-35《民事诉讼法》地位上属于基本法、内容上属于程序法、调整对象上属于部门法、公私划分上属于公法。2009-37诉讼标的是当事人争议的实体法律关系。...

背诵方法和技巧,孩子记忆力差,背书困难怎么办,你不知道的背诵古代文化常识妙招,不看就晚了!

作者: 极简大道 时间:2024-01-24 阅读: 59
关注“语文大师官方”微信公众号,学习更多知识...

如何背书快又记得牢,背诵方法和技巧,背书技巧:如何轻松背诵一篇文章 下面我来讲述一下我的背书心得

作者: 极简大道 时间:2024-01-24 阅读: 53
背诵一篇文章可以帮助我们提高语言表达能力、记忆能力和理解能力。但是,对于许多人来说,背诵一篇文章可能是一项艰巨的任务。在本文中,我将介绍一些快速背诵一篇文章的方法,并提供实际案例来说明这些方法的有效性。1. 分段背诵法分段背诵法是一种将文章分成若干段落,逐段背诵的方法。这种方法可以帮助我们更好地理解和记忆文章的内容,同时也可以减轻背诵的负担。具体步骤如下:...
背书用什么方法背得快,快速背书小窍门,期末复习,快速背书方法

背书用什么方法背得快,快速背书小窍门,期末复习,快速背书方法

作者: 极简大道 时间:2023-12-29 阅读: 55
快速背书,可以尝试以下几个方法:填写记忆法:将需要背诵的内容整理出来,做出许多空,自己填空,每天填一填,过几天交换空的位置,自己有了一个印象,再一个自然段地背。理解记忆法:先理解要背诵的内容,抓关键词背诵,记住注释和翻译,加强理解,按照理解内容背书,主要内容记住了,课文也背熟了。...

怎么背书最快最有效的方法,如何背诵效率高又快,神奇的背书七步法 最近参加一个考试,需要背2本专业...

作者: 极简大道 时间:2023-11-25 阅读: 97
神奇的背书七步法最近参加一个考试,需要背2本专业书。大学毕业有几年了,好几年没有学知识了。不知道如何入手,就上网找找方法。这打开了我新世界的大门。原来背书也有么多实用的方法。读了这么年的书,自己却从来不知道。有这么好的学习方法。以前一直认为自己不聪明怎么学也学不会。现在才发现原来自己重来都不会学习。大多数人背诵的东西总是忘记归结于自己记忆力不好。自己不是学习了料。这是大错特错。德国著名的心理学家赫尔曼·艾宾浩斯,绘制出人类遗忘曲线。根据记忆曲线人们在记忆消退前及时复习所学知识,就可以把短期记忆变成长期记忆。...

年度爆文