首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将5000万查询连接到一行。

将5000万查询连接到一行。
EN

Stack Overflow用户
提问于 2014-09-08 09:07:50
回答 2查看 484关注 0票数 2

我有两个表,每个表有5000万行。

一个表中的行号对应于第二个表中的行号。

,即第一表中的第一行与第二表中的第一行连接,第一表中的第二行与第二表中的第二行联接等。做内部连接是昂贵的。

它需要超过5个小时的集群。在SQL中有没有一种有效的方法来做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2014-09-08 09:16:38

首先:表只是集。因此,记录的行数可以被认为是纯粹的巧合。不能根据行号连接两个表。因此,您将加入ID,而不是行号。

没有什么比简单的内部连接更有效了。由于必须读取整个表,您甚至可能无法从索引中获得任何信息(但是,当我们讨论ID时,无论如何都会有索引,因此我们不必考虑)。

根据DBMS的不同,您可能能够并行化查询。例如,在Oracle中,您将使用诸如/*+ parallel( tablename , parallel_factor ) */这样的提示。

票数 2
EN

Stack Overflow用户

发布于 2014-09-08 09:13:15

尝试按行对两个表进行排序(如果没有排序),

然后,对两个表使用常规选择(也许可以使用极限逐部分获得)和

数据在任何您想要的地方逐行连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25720725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档