gpt4 book ai didi

mysql - 使用 UNION ALL 添加任意元组时的性能损失

转载 作者:行者123 更新时间:2023-11-29 06:26:19 26 4
gpt4 key购买 nike

我想将任意元组添加到包含 180 万行的 SELECT 结果中。我决定像这样使用 UNION 运算符:

SELECT 
id as id
FROM
user
UNION
SELECT
-1 as id

哪个返回:

+---+
| id|
+---+
| -1|
+---+
| 01|
+---+
| 02|
+---+
|...|
+---+

然而,使用和不使用 UNION 运算符的查询之间的性能损失是巨大的。我尝试使用这样的 UNION ALL 语句:

SELECT 
id as id
FROM
user
UNION ALL
SELECT
-1 as id

这 - 我认为 - 可能是性能损失背后的原因,但性能损害仍然存在。

我错过了什么吗?我只是想向 SELECT 结果添加一个额外的任意元组。

最佳答案

使用 UNION(或 UNION ALL)似乎会导致创建一个临时表。看这个bug供引用。

创建一个包含 180 万行的临时表可能是导致速度下降的原因。

好消息是,5.7.3 似乎在某些情况下改变了这种行为。请参阅链接的错误报告中的最后一篇文章。

关于mysql - 使用 UNION ALL 添加任意元组时的性能损失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30775986/

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