gpt4 book ai didi

MySQL `EXPLAIN` 表示依赖查询,即使不存在相关性

转载 作者:行者123 更新时间:2023-11-29 17:34:42 24 4
gpt4 key购买 nike

我有一个简单的查询:

DELETE FROM schema_a.table_a 
WHERE column_a = 'VALUE_A' AND column_b NOT IN (SELECT id FROM schema_b.table_b)

但是这个查询非常慢。运行 EXPLAIN 显示子查询的类型为“DEPENDENT SUBQUERY”,这意味着它将运行与外部查询中的行一样多的次数。但为什么会出现这种情况呢?我没有看到内部查询和外部查询之间有任何关系。

有趣的是,即使我将 DELETE FROM 替换为 SELECT * FROM,内部查询的类型为“SUBQUERY” -> 即这将运行得非常快。

我想知道为什么 EXPLAIN 对此有所不同。如有任何帮助,我们将不胜感激。

最佳答案

尝试使用不存在:

DELETE FROM schema_a.table_a tbl_a
WHERE tbl_a.column_a = 'VALUE_A'
AND NOT EXISTS (SELECT 1
FROM schema_b.table_b tbl_b
WHERE tbl_b.id = tbl_a.id)

关于MySQL `EXPLAIN` 表示依赖查询,即使不存在相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50387497/

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