gpt4 book ai didi

sql - 虚拟表 JOIN 的效率有多低?

转载 作者:行者123 更新时间:2023-12-04 17:56:53 24 4
gpt4 key购买 nike

假设我有一个这样的查询,我在其中加入了许多虚拟表:

SELECT table1.a, tbl2.a, tbl3.b, tbl4.c, tbl5.a, tbl6.a
FROM table1
JOIN (SELECT x, a, b, c FROM table2 WHERE foo='bar') tbl2 ON table1.x = tbl2.x
JOIN (SELECT x, a, b, c FROM table3 WHERE foo='bar') tbl3 ON table1.x = tbl3.x
JOIN (SELECT x, a, b, c FROM table4 WHERE foo='bar') tbl4 ON table1.x = tbl2.x
JOIN (SELECT x, a, b, c FROM table5 WHERE foo='bar') tbl5 ON table1.x = tbl5.x
JOIN (SELECT x, a, b, c FROM table6 WHERE foo='bar') tbl6 ON table1.x = tbl6.x
WHERE anotherconstraint='value'

在我的实际查询中,每个 JOIN 都有自己的 JOIN、聚合函数和 WHERE 约束。

像这样的查询运行的好坏如何? 此外,这与将所有单个虚拟表作为自己的查询运行并将结果链接到 SQL 之外的影响有什么区别?

最佳答案

使用内联 View 本质上没有什么坏处(AFAIK 是您所谓的“虚拟表”的正确术语)。我建议您学习查看和理解执行计划,以便您可以调查特定的性能问题。

一般来说,我认为执行多个单表查询然后在前端代码中将结果连接在一起是一个非常糟糕的主意。做连接是 RDBMS 的设计目的,为什么要重写它?

关于sql - 虚拟表 JOIN 的效率有多低?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6880435/

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