【发布时间】:2013-05-31 15:41:32
【问题描述】:
我正在优化一个涉及两个查询的UNION ALL 的查询。
两个查询都经过优化,分别运行不到一秒。
但是,当我执行两者的并集时,计算所有内容大约需要 30 秒。
我不会用具体的查询来打扰你,因为它们会随着它们得到优化,所以我们称它们为 Optimized_Query_1 和 Optimized_Query_2
Optimized_Query_1 的行数大约为 100K
Optimized_Query_2 的行数大约为 200K
SELECT * FROM (
Optimized_Query_1
UNION ALL
Optimized_Query_2
) U
ORDER BY START_TIME ASC
我确实要求结果是有序的,但我发现无论最后是否有 ORDER BY,查询都会花费尽可能多的时间,所以应该没有区别。
显然 UNION ALL 在内存中创建了一个临时表,然后从中给出最终结果,有没有办法解决这个问题?
谢谢
【问题讨论】:
标签: mysql performance optimization