1. 程式人生 > >大資料量高效率去重複資料

大資料量高效率去重複資料

前提:

表a 欄位 id、a1、a2(可以有多個欄位,在此為方便只列出3個欄位,其中id是主鍵,因此在一個表中是唯一的)

我的表資料大約是600w左右,最開始我採用的方法特別笨

delete from a where a.id not in(select max(id) from a group by a1,a2);

這種方式效率特別低,結果執行了1.5小時也沒有執行完,果斷換方法

解決辦法:

1、建立一個臨時表,將不重複的資料插入裡邊

creat table temp as select max(id) as id,a1,a2 from a group by a1,a2

2、將臨時表中的資料匯入到原表中

執行truncate table命令將原來表的資料刪除,再用insert into select語句,在此不在贅述