范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

多表连接查询和多次单表查询哪个效率高?为什么?

  如果数据量小的表,这样的设计意义不大,而且当然是单表速度快。若在大数据量情况下,设计非常有意义。在多表连接中注意数据的条目和外健,避免出行大量冗余数据导致性能下降。下面我以Oracle讲讲数据查询的整个过程技术。
  由于数据分布到数据块,在大量数据设计中可以将数据存储于多个数据块,在高并发进程的随机访问的情况下,能有效减少块冲突 同样的数据需要更多的数据块来存储,由于数据块的块头元信息大小固定,所以需要更多的空间来存储块头元信息。行长度过大容易导致行连接,从而导致Oracle获取数据块的效率降低 ,在行长度固定的前提下,单块能够存储更多的数据行,也就意味着Oracle一次I/O能读取更多的数据行。适合连续顺序读或者存放大对象数据(如LOB数据) 由于大数据块可以存放更多的索引叶节点信息,容易引起争用,所以大数据块不适合存放索引叶节点信息。
  大量数据表的数据库参数设置DB_FILE_MULTIBLOCK_READ_COUNT表示Oracle一次顺序I/O读操作最多能读取的数据块块数。该参数的默认值随操作系统的不同而不同。在全表扫描或者索引快速扫描比较多的系统中(如DSS系统),建议将该值设置得较大。但是DB_FILE_MULTIBLOCK_READ_COUNT参数受操作最大单次I/O大小的限制,大多数操作系统单次读操作的大小不能超过1MB,这也就意味着在8KB数据块大小的情况下,该参数最大值为128。值得一提的是,该参数的大小还会影响Oracle CBO对执行计划的评估,如果设成较大值,Oracle的执行计划倾向于全表扫描。当该参数设置为0或者保持默认时,CBO假设全表扫描时最多能连续读取8个数据块。从Oracle 11R2开始,DB_FILE_MULTIBLOCK_READ_COUNT的取值算法如下:
  db_file_multiblock_read_count = min(1048576/db_block_size , db_cache_size/
  (sessions * db_block_size))
  注意 数据库参数BLOCK_SIZE在设定之后,在数据库生命周期内不可更改。
  当执行SELECT语句时,如果在内存里找不到相应的数据,就会从磁盘读取进而缓存至LRU末端(冷端),这个过程就叫物理读。当相应数据已在内存,就会逻辑读。我物理读是磁盘读,逻辑读是内存读;内存读的速度远比磁盘读来得快。
  下面将本人大数据分区设计截图,为大家参考学习。
  先贴俩图镇镇场。
  引言
  对于内连接,使用单个查询是有意义的,因为你只获得匹配的行。
  对于左连接,多个查询要好得多。
  数据说话
  看看下面的基准测试:
  5个连接的单个查询
  查询:8.074508秒
  结果大小:2268000
  一行5个查询
  组合查询时间:0.00262秒
  结果大小:165 (6 + 50 + 7 + 12 + 90)
  注意,我们在两种情况下得到了相同的结果 (6 x 50 x 7 x 12 x 90 = 2268000)
  总结一下
  对于冗余数据,左连接使用更多的内存。
  如果只执行两个表的连接,那么内存限制可能没有那么糟糕,但通常是三个或更多的表,因此值得进行不同的查询。
  写在最后
  用过Laravel吗?还记得 Eloquent ORM模型吗?
  不知道有没有注意到,debug所打印出来的多表联合查询,
  都是拆分为"单个表查询",然后使用PHP处理的。
  Happy coding :-)
  我是@程序员小助手,持续分享编程知识,欢迎关注。
  是做表连接查询还是做分解查询要具体情况具体分析。
  如果数据库的结构合理,索引设计得当,表连接的效率要高于分解查询。比如,在有外键的时候,数据库可以为外键建表并建立索引从而提升多个表连接查询的效率。另外,多表连接查询不需要把数据传输到应用程序中,直接在数据库端执行,这在很大程度上提升了效率。
  但是多表连接也有一些缺点。多表连接对表结构的依存度很高,只要表结构出现变更就会同时对数据库检索和应用处理两个部分产生较大影响。另外,多表连接的兼容性不好,数据库不同SQL文也多少有些差异。而且采用分散数据库的时候,实现多表连接即麻烦又没有什么好处。因此,一些大型系统或者是支持多种类数据库的系统一般不会使用多表连接,而倾向于采用分解查询。
  这个得看情况,一般数据不大的情况下多表连接查询和多次单表查询的效率差不多。如果数据量足够大,那肯定是多次单表查询的效率更高。在很多大的公司里面,都会禁用多表连接查询,原因就是一旦数据量足够大的时候多表连接查询效率会很慢,而且不利于分库分表的查询优化。那么看一下下面这个例子。两种查询方式的比较
  我这里有一个数据库,我们拿里面的客户表和地区表做两种查询的对比。用户表数据是31万条,地区表3511条。
  1. 使用连表查询成都市的客户总数
  2.使用多次单表查询客户总数
  可以看到,查询出来的结果都是一样,但是第一种的连表查询用了0.67秒中,而第二种多次单表查询一共用时0.14秒。这个对比已经是很明显了吧。
  虽然这只是一个很简单的例子,但是对比结果是非常明显的。在实际应用中可能会更复杂、数据更多,如果还使用连表查询时非常慢的,而且还消耗服务器资源。
  所以现在在很多大了公司明确要求禁止使用join查询,比如阿里、腾讯就明确规定禁用三表以上的join查询。总结一下,单表查询的优点
  1. 多次单表查询,让缓存的效率更高。
  许多应用程序可以方便地缓存单表查询对应的结果对象。另外对于MySQL的查询缓存来说,如果关联中的某个表发生了变化,那么就无法使用查询缓存了,而拆分后,如果某个表很少改变,那么基于该表的查询就可以重复利用查询缓存结果了。
  2. 将查询分解后,执行单个查询可以减少锁的竞争。
  3. 在应用层做关联,更容易对数据库进行拆分,更容易做到高性能和可扩展。
  4. 查询本身效率也可能会有所提升。
  5. 可以减少冗余记录的查询。
  6. 在应用中实现了哈希关联,而不是使用MySQL的嵌套环关联,某些场景哈希关联的效率更高很多。
  7. 单表查询有利于后期数据量大了分库分表,如果联合查询的话,一旦分库,原来的sql都需要改动。
  8. 很多大公司明确规定禁用join,因为数据量大的时候查询确实很慢
  所以在数据量不大的情况下,两种方式的查询都没什么明显的差别,使用多表连接查询更方便。但是在数据量足够大几十万、几百万甚至上亿的数据,或者在一些高并发、高性能的应用中,一般建议使用单表查询。
  如果觉得笨猫的回答对你有用,点个关注,非常感谢。
  做java的,在orm框架下,分解查询是最符合面向对象操作的,挺支持分解查询的(拙见)
  先说结论:不一定。
  多表查询效率低的时候,可以考虑拆解sql成多个小的sql,至于效率是否一定会提高,这个还不一定,具体问题具体问题。当多表查询效率低的时候,拆解成单个小sql,这只是一个可能的思路,起不起作用,不一定。
  sql是一个很复杂的东西,sql引擎会分析执行计划,并可能按照他认为最优的执行计划执行sql,但他认为的也不一定是正确的。不同的sql执行计划不一样,所以很难断定sql拆解或者合并的效率。
  说了这么多,那到底是多表联合查询还是拆解呢?有没有一个原则? 有!如果你确定你的单个sql的执行效率比较快,当然可以写多个单个sql。当然了,具备这个能力需要你对数据库足够了解,比如什么时候走索引,什么时候nested loop等等。如果你现在的多表联合查询比较慢,你需要找出来慢的原因,并分析拆解后的sql的执行计划,看是否避免了多表联合查询的效率问题。
  总之吧。这个问题,只能给你一个大体的思路,因为牵扯到很多基础问题,我觉得最起码sql执行计划应该需要了解,一个sql可能的执行计划有几十中,复杂sql的执行计划又是这几十种的组合。哪种效率低,哪种效率高应该有个大体了解。
  多表查询可以很快,也可以很慢。主要看执行计划。
  单次肯定是多表连接查询的效率高,但多次单表查询的吞吐量高,而且容易优化,例如分库分表,使用缓存减少DB访问次数等等,所以在大数据量高并发场景通常使用多次单表查询的方式。另外,不管是单表还是多表连接查询,SQL的执行时间和数据量、并发量都有很大关系,和扫描的数据行数也很有关系。如果一条SQL,平时执行一次要2秒,10个并发时,系统可能一点问题都没有,1000个并发时,数据库可能就被拖死了。我们组之前碰到过好几次这种问题,一张只有几万条数据的表,因为忘记加索引,平时执行只有几百毫秒,高峰期直接飙到几十秒,DB差点被拖垮。
  单纯从效率来讲,join的表不太多时,join效率比较高。但是占用的主要是数据库服务器的资源。数据库资源又是个瓶颈,不易横向扩展。所以在数据量大的时候,我们会采用单表查询,把循环和匹配等大量工作移到应用服务器上。应用服务器容易扩展,对并发支持更好。
  当数据量大到千万级以上,就建议尽可能减少join,鼓励使用单表查询。查询优化比较容易。这时候使用join的一个大型查询就可能花很久,对其他查询造成阻塞,导致服务不可用。
  当考虑单表查询后,就会衍生一系列的策略,比如冷热数据分离,将热数据和历史数据分离,大幅降低数据量级以提高热数据查询性能,并可以使用内存缓存。这样又促使你考虑引入微服务架构。
  总结,数据量小,查询并发少,那么使用join的性能是可控的,开发成本低。当数量级上升到千万级且不断增加,尽早考虑向单表查询切换,否则可能有性能下降会导致系统奔溃。而且性能下降不是线性的,会陡降。

快递业最后一公里难题如何破解来源光明日报投送快递件扔了就跑门口签收没经同意,快递就被放在快递柜或快递点还没收到快递,订单就显示被签收要是没翻看物流,快递就在快递柜里错过了七天无理由退货期诸如此类的尴尬情况,你移动一直是领头羊根据AppAnnie的数据,2021年消费者花在移动上的时间达到创纪录的3。8万亿小时旧金山2022年1月12日美通社根据AppAnnie(一家领先的移动数据和分析公司,帮助品牌和元宇宙在分化中前行从最早启动的中青宝,宝通科技,汤姆猫到百花齐放时的天下秀,中文在线,恒信东方,佳创视讯后期的宣亚国际,美盛文化虚拟人的天神娱乐,锋尚文化,蓝色光标,浙文互联文交所的博瑞传播,华媒控国际互联网领域的美式霸权逻辑中新社记者张晨翼互联网是各国民众工作与生活的重要场域,虚拟与现实的边界也处在不断被打破然后被重塑的过程中。这就给各国政府的社会治理开辟了新领域提出了新要求。但是美国却在国际互联网领集齐ADIOSPRO2PRIMEX和BOSTON10后,我就能不断挑战速度极限相信不少7080后的朋友们都看过七龙珠漫画吧,一定对里面一个很经典的情节印象深刻,那就是只要成功集齐7颗龙珠,就可以召唤神龙,实现自己的愿望。而作为跑步装备控的我,在2021年底陆三星GalaxyS22新配色曝光樱花粉配色2月8日发布中关村在线消息三星官方宣布将于2月8日举行新品发布会,年度旗舰手机GalaxyS22系列将在本次发布会中登场。今天S22全新的樱花粉配色被外媒曝光,新配色是S系列首次采用粉色配色,人工智能与因果推断研讨会召开1月9日,认知科学杂志和世界科学出版社组织承办了人工智能与因果推断小型线上研讨会。会议邀请了清华大学山西大学等因果领域的研究者一起就相关主题进行讨论。会上,山西大学哲学社会学学院教拍照或失去主战场地位,小米11Ultra全大底高像素方案依旧能打在2018年之前,手机拍照是国外手机的主战场,三星苹果凭借超强的影像系统一直占据着旗舰手机的市场。2018年华为P20Pro作为一款国产手机,直接登顶DxOMark排行榜第一名,超特斯拉再次推迟Cybertruck投产来源盖世汽车占亚娥据外媒报道,知情人士透露,特斯拉计划在2023年第一季度末开始生产其备受期待的Cybertruck,推迟了于今年晚些时候开始生产的计划。知情人士称,由于电动皮卡领MySQL升级版分布式MySQLMySQLPlusTiDBTiDB官网httpspingcap。comindex。html不同类型数据库特点传统关系型数据库历史比较久,目前RDBMS的代表为OracleMySQLPostgreSQL,在数斗鱼直播CEO陈少杰今年38岁大一时爱玩游戏导致辍学只有高中学历运营商财经网实习生林红艳文不日前,斗鱼宣布重大人事变动,董事兼联席首席执行官张文明因个人原因辞职,自此斗鱼两个CEO成为历史。而作为另一个CEO,陈少杰也再次引发人们关注,运营商也
企业监控员工绩效的7个大数据工具如今,大数据正在改变企业管理和评估员工的方式,企业可以尝试使用这些大数据工具来监控员工绩效。大数据正在改变和塑造工作场所。这一点尤其适用于新的专注于数字化远程团队的工作场所。通过大京东每天都有员工排队办离职?内部员工爆料正常现象今年2月,京东表示将在年内末位淘汰10的副总裁级别以上的高管,推动小集团,大业务的转型,进而盘活资源充分发挥组织活力,为多元业务的发展保驾护航。3月15日,张晨卸任京东集团首席技术新款威马汽车E。5上市,18。01万元起售,实用派最优选择目前国内什么行业最火?当然是新能源汽车,众多传统车企纷纷转型生产新能源汽车,甚至有一家老牌国产车企在3月份就宣布停止生产燃油车全面转型生产新能源汽车,在化石燃料价格逐渐上涨,燃油车Python基础之迭代器一。什么是迭代器迭代器是用来迭代取值的工具。而涉及到把多个值循环取出来的类型有列表,字符串,元组,字段,集合,打开文件等。通过使用的遍历方式有forin,while等,但是,这些方599元百元机红米9A300万销售量到底值不值?我在头条搞创作畅聊数码新品4GB64GB是599元,4GB128GB是799,6GB256GB是899元,在整个手机市场上可以说是几乎价廉的手机了,还以小米为背书让其更叫让人信赖,北京将发布北斗融合创新应用示范项目新华网北京4月14日电(记者阳娜)北京市经济和信息化局副局长王磊在14日举行的第十三届中国卫星导航年会新闻发布会上透露,中国第二代卫星导航系统重大专项北京市北斗融合创新应用示范项目福建11个项目入围这一名单,位居全国第二近日,工信部公示了2021年物联网示范项目,共179个项目入选。我省有11个项目入围,入围数仅次于北京,排名全国第二。据悉,本次项目征集聚焦物联网新型基础设施建设的关键环节和重点问这才是大神,梁孟松团队正式官宣,国产7nm芯片有戏?在华为被断芯之后,芯片产业就备受关注,国产芯也承受着巨大的压力,而拥有梁孟松这等大神坐镇的中芯国际自然也被寄予厚望。不可否认,梁孟松加入中芯国际3年时间,完成了其他公司需要十年时间小米新品发布会官宣4月27日正式举办小米印度官方通过海外平台宣布小米新机将于4月27日在当地发布,并附上了新机预热海报。海报中展示了小米12的后置摄像头模组,本次发布的机型很有可能是小米12Pro。小米12系列去年年深交所向ST新海(002089。SZ)发关注函要求说明光伏项目在投产后的具体运作模式智通财经APP获悉,4月14日,深交所向新海宜科技集团股份有限公司(ST新海,002089。SZ)发出关注函。公司披露公告称,公司于4月12日与杭锦旗人民政府中国电力工程顾问集团华iPhoneSE3销量惨淡苹果计划产量再削减20尽管目前手机市场需求疲软,但是由和硕独家制造的iPhoneSE3,目前在许多国家和地区的苹果网上商店中,交货状态仍然是有货,看来目前的库存仍然可以满足乏力的需求。此前了解,这款苹果