萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> SQL去除重復刪除重復數據(千萬級數據量)

SQL去除重復刪除重復數據(千萬級數據量)

sql 刪除重復數據方法有很多種,我今天要一個5000W數據庫中要查出重復數據並且刪除,我在網上找了一些方法,實在是不行,執行了5個小時還沒完,後來放棄了自己經高手指點,用了1分鐘不到就去除了重復記錄了。

MYSQL裡有五百萬數據,但大多是重復的,真實的就180萬,於是想怎樣把這些重復的數據搞出來,在網上找了一圈,好多是用NOT IN這樣的代碼,這樣效率很低,自己琢磨組合了一下,找到一個高效的處理方式,用這個方式,五百萬數據,十來分鐘就全部去除重復了,請各位參考。

第一步:從500萬數據表data_content_152裡提取出不重復的字段SFZHM對應的ID字段到TMP3表

 代碼如下 復制代碼

create table tmp3 as select min(id) as col1 from data_content_152 group by SFZHM;

第二步:創建新表RES

CREATE TABLE `res` (

 代碼如下 復制代碼

`id` int(11),
`sfz` char(20)
) ENGINE=MyISAM;

第三步:把TMP3表ID對應到data_content_152裡需要提取的數據添加到RES表的SFZ字段
INSERT INTO res (sfz) SELECT sfzhm FROM data_content_152,tmp3 where data_content_152.id=tmp3.col1
至此,就在MYSQL裡實現了,給數據表data_content_152完全刪除重復數據,把去重復後的數據導入到RES表。

copyright © 萬盛學電腦網 all rights reserved