MySQL刪除重複行

網上有些做法是這樣的:

delete from table_name where id not in (select min_id from (select min(id) as min_id from table_name group by duplicate_column) b);

發現這樣在本地跑是可行的,20w+數據大概花了8s,但是同樣的數據在linux上跑會出現CPU佔用100%,而且還一直無法執行完畢。暫時不知道什麼原因。

用另一種做法

sql語句:

ALTER IGNORE TABLE tableName

ADD UNIQUE INDEX  (`column`);

該語句會幫你把該字段的重複數據刪除。

參考:

https://stackoverflow.com/questions/3311903/remove-duplicate-rows-in-mysql

https://stackoverflow.com/questions/14046355/how-do-i-delete-all-the-duplicate-records-in-a-mysql-table-without-temp-tables


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