gpt4 book ai didi

sql - 使用联合或连接 - 哪个更快

转载 作者:IT老高 更新时间:2023-10-28 23:47:18 25 4
gpt4 key购买 nike

我只是想知道你是否有一个表并且你联合它会比使用连接更有效吗??

我知道连接会创建更多列,但这只是理论上的 - 联合是否需要像连接一样对另一个表进行嵌套循环扫描?

最佳答案

Union 会更快,因为它只是传递第一个 SELECT 语句,然后解析第二个 SELECT 语句并将结果添加到输出表的末尾。

Join 将遍历两个表的每一行,在另一个表中找到匹配项,因此需要更多的处理,因为要为每一行搜索匹配的行。

编辑

Union 是指 Union All,因为它似乎足以满足您想要实现的目标。虽然普通的 Union 通常比 Join 更快。

编辑 2(回复@seebiscuit 的评论)

我不同意他的观点。从技术上讲,无论您的联接有多好,“联接”仍然比纯串联更昂贵。我在我的博客 codePERF[dot]net 上发表了一篇博文来证明这一点.实际上,它们有两个完全不同的目的,更重要的是确保您的索引是正确的并使用正确的工具来完成工作。

从技术上讲,我认为可以使用我的博客文章中的以下 2 个执行计划来总结:

UNION ALL执行计划

UNION ALL Execution Plan

JOIN执行计划

JOIN Execution Plan

实际结果

实际上,聚集索引查找的差异可以忽略不计:

Benchmark Results

关于sql - 使用联合或连接 - 哪个更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2309936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com