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