大數據量高效率去重複數據

前提:

表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語句,在此不在贅述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章