以下兩個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