Search Google

Thursday, November 13, 2008

[SQL] select distinct & group by

對於大部分的初學者(eg. Myself)來說,以下兩個SQL指令應該是差不多的:

(1) select distinct a from table_a;
(2) select a from table_a group by a;
以上這兩個指令都是用來從table_a中找出a欄位的資料,而且結果中的每一筆資料都是不重複的,但是真正執行起來(1)與(2)的效能確有天差地遠的差別!
對一個擁有78x萬筆資料的table(而且沒有index)而言,(1)執行了899分鐘之後還在執行中,(2)卻在1~2分鐘之內執行完畢。

就在今天早上枯枯等待從昨天晚上就在執行的(1)吐出搜尋結果的時候忽然想到為什麼不試試看(2)呢?果然是山不轉路轉,馬上就得到想要的結果!於是又再一次的在好奇心的驅使下學到新事物 :-)

No comments: