gpt4 book ai didi

java - 将子查询拆分为单独的查询效率更高吗?

转载 作者:行者123 更新时间:2023-11-29 12:15:32 24 4
gpt4 key购买 nike

我有一个像这样的子查询。基本上我使用了多个独立的条件来形成多个子查询。

SELECT
this_.id AS y0_,
this_.a AS y1_,
this_.b AS y2_,
this_.c AS y3_,
this_.d AS y4_,
this_.e AS y5_
FROM
table_a this_
WHERE
this_.id IN (
SELECT
this_.a AS y0_
FROM
table_b this_
WHERE
this_.b=?
)

目前我的数据库表中没有大量数据。执行查询的时间不到 0.01 秒。但现在我被告知将每个子查询作为单独的查询,以将值列表提供给每个 IN 语句。我不知道知情策略与当前子查询(上面发布)之间有什么区别。子查询还会将 id 列表返回到其 IN 语句,如果使用单独的查询,id 列表也将被提供给 IN 语句?为什么这两种策略的性能不同。

有人告诉我,如果表中有大量数据,我当前的子查询将会变慢。这两种策略都执行相同的功能。那么为什么它会导致子查询性能下降呢?

仅考虑一个示例 Java 方法调用

public static void main(String[] args){
System.out.print( c( b( a() ) ) );
}

public String a(){
return "success";
}
public String b(String string){
return string;
}
public String c(String string){
return string;
}

首先将调用 a,然后调用 b,并返回 a,最后返回 c 将被调用,并返回 b。然后就会显示c的返回。

我假设 MySQL 子查询也遵循相同类型的功能。我对吗?那么,与所有单独查询的总时间相比,为什么子查询会导致性能下降?

最佳答案

我相信您在问黑白相关子查询和子查询及其性能方面有什么区别

子查询:-内部查询仅执行一次内部查询将首先执行,内部查询的输出由外部查询使用

相关子查询:- 外部查询将首先执行,对于外部查询的每一行,内部查询将被执行。因此,内部查询将执行与外部查询结果中的行数一样多的次数。

使用关联子查询性能会降低,因为它执行 NXM 迭代

关于java - 将子查询拆分为单独的查询效率更高吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862956/

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