[发明专利]用于数据库的表的外连接的方法和系统有效
申请号: | 201910345389.6 | 申请日: | 2019-04-26 |
公开(公告)号: | CN110175202B | 公开(公告)日: | 2021-09-10 |
发明(设计)人: | 陈萌萌 | 申请(专利权)人: | 蚂蚁金服(杭州)网络技术有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/22 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 许振新;朱文杰 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 数据库 连接 方法 系统 | ||
本申请涉及一种用于将数据库的第一表外连接到第二表的方法,该方法包括将所述第一表广播到所述第二表的每个节点;以及在所述第二表的一个或多个节点上执行外连接操作,而在所述第二表的其它节点上执行内连接操作。还提供了相关联的系统和存储介质。本申请的方案在保证执行的正确性的情况下提高了执行效率。
技术领域
本发明涉及数据库,尤其涉及用于数据库的表的外连接的方法和系统。
背景技术
连接(join)操作是针对数据库的常见逻辑操作,也是最为耗时的操作之一。连接操作执行效率的高低往往对整个请求的执行时间有着决定性的影响。在分布式数据库中,优化器除了要考虑数据的统计信息、连接顺序、访问路径等因素以外,还需要根据数据的物理分布信息,生成在分布式环境下执行代价最小的执行计划。
“外连接”操作是一种类型的“连接”操作。对于外连接操作,由于语义要求(除了返回匹配的行,还要返回外表没有匹配的行),无法直接使用广播外表的执行计划,某些场景下可能引入大量的数据再分布,降低了执行效率。
因此,需要一种既能确保外连接的正确执行,又能提高外连接的执行效率的方案。
发明内容
为了在保证外连接结果的正确性的情况下提高执行效率,本发明提供了用于数据库的外连接的方法和系统。
本发明通过以下技术方案来实现其上述目的。
在本发明的一个方面中,公开了一种用于将数据库的第一表外连接到第二表的方法,包括:将所述第一表广播到所述第二表的每个节点;以及在所述第二表的一个或多个节点上执行外连接操作,而在所述第二表的其它节点上执行内连接操作。
优选地,对所述第二表的每个节点执行基于所述外连接的连接键的group by操作。
优选地,所述group by操作由聚合节点执行。
优选地,在所述第二表的一个或多个节点上执行外连接操作是在所述第二表的所有节点的真子集上执行外连接操作。
优选地,在所述第二表的一个或多个节点上执行外连接操作是在所述第二表的仅一个节点上执行外连接操作。
优选地,所述第一表包括多个节点,且将所述第一表广播到所述第二表的每个节点包括将所述第一表的每个节点广播到所述第二表的每个节点。
优选地,在所述第二表的一个或多个节点上执行外连接操作包括以所述第一表为外表且以所述第二表的相应节点作为内表来执行外连接操作。
在本发明的另一方面中,公开了一种用于存储数据的系统,其特征在于,包括:第一表;以及第二表,所述第二表包括多个节点,其中:所述第一表被广播到所述第二表的每个节点;以及在所述第二表的一个或多个节点上执行外连接操作,而在所述第二表的其它节点上执行内连接操作。
优选地,所述系统还包括聚合节点,在所述聚合节点上对所述第二表的每个节点执行基于所述外连接的连接键的group by操作
在本发明的又一方面中,公开了一种存储指令的计算机可读存储介质,所述指令当被计算机执行时,使所述计算机执行上述方法。
在本发明的再一方面中,公开了一种计算机系统,所述计算机系统包括用于执行上述方法的装置。
与现有技术相比,本发明可具有如下有益效果:
1.本方案通过混合内连接、外连接算子,以及引入最终的结果去重,确保了分布式外连接计划可以将左表通过广播的方式发送到右表所在的每一个节点上的执行方式。在右表数据分布广泛、数据量较大时,与传统计划相比,能够大大降低数据的网络传输量,从而提高执行效率。
2.本方案通过只保留一个外连接节点,确保最低程度的产生需要被删除的冗余数据,进一步降低了数据的传输量和计算量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于蚂蚁金服(杭州)网络技术有限公司,未经蚂蚁金服(杭州)网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910345389.6/2.html,转载请声明来源钻瓜专利网。