gpt4 book ai didi

MySQL Select from UNION 性能问题(杀死数据库)

转载 作者:可可西里 更新时间:2023-11-01 08:05:49 39 4
gpt4 key购买 nike

我有一个关于 MySQL 的小问题

我正在尝试像这样创建两个表的 UNION:

SELECT `user_id`, `post_id`, `requested_on`
FROM `a`
WHERE `status` != 'cancelled'

UNION

SELECT `user_id`, `post_id`, `time` as requested_on
FROM `b`
WHERE `type` = 'ADD'

此查询在显示第 0 - 29 行(总共 36684,查询耗时 0.0147 秒)

中执行

但是当我这样做的时候

SELECT * FROM (
SELECT `user_id`, `post_id`, `requested_on`
FROM `a`
WHERE `status` != 'cancelled'

UNION

SELECT `user_id`, `post_id`, `time` as requested_on
FROM `b`
WHERE `type` = 'ADD'
) tbl1

MySQL 死了。

我之所以要这样做是为了GROUP BY user_id, post_id

知道为什么会发生这种情况/有任何解决方法吗?

稍后编辑:

这是 SQL fiddle :

http://sqlfiddle.com/#!2/c7f82d/2

最后的查询在那里,执行于:

记录数:10;执行时间:574ms

在我看来,10 条记录的 574 毫秒是巨大的。

最佳答案

我找到了问题所在。

事实上,我在 PHPMyAdmin 中运行查询,当我执行 SELECT UNION SELECT 时,一切都很好,但当我执行时SELECT * FROM(SELECT UNION SELECT)PHPMyAdmin 的分页系统失败,PHPMyAdmin 试图向我的浏览器输出一个超过 30k 行的表,这就是 SQL 请求挂起的原因。 :(

关于MySQL Select from UNION 性能问题(杀死数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23677067/

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