以下两个SQL语句的功能相同:在MySQL中结合SELECT DISTINCT和UNION DISTINCT - 有什么影响?
SELECT DISTINCT a,b,c FROM table1
UNION DISTINCT
SELECT DISTINCT a,b,c FROM table2
和
SELECT a,b,c FROM table1
UNION DISTINCT
SELECT a,b,c FROM table2
...因为“不同”适用于工会作为一个整体,所以是个人SELECT
中的冗余的。
(注:UNION DISTINCT
是相同的,只是UNION
本身,但我包括DISTINCT
关键字为清楚起见)
我这里有一个问题,有没有性能差异,或两者在MySQL之间执行计划的区别?或者SELECT DISTINCT
是否由优化器变成了常规的SELECT
?
(我正要指出这些查询在功能上并不相同,但我错了!他们是!YLSNED) – Strawberry
我没有经验阅读EXPLAIN的输出。而且,我想知道一般情况下的答案,而不仅仅是某些特定的表格,这是EXPLAIN会告诉我的。 – Doin
我刚刚在两个定义为(int,b int,cint)的临时表上尝试了'EXPLAIN',唯一的区别是用'SELECT DISTINCT's,输出在“Extra”中有“Using temporary”柱。所以我想在这个特殊情况下的答案是,它排序三次(每个'SELECT'一次,'UNION'一次?我想? – Doin