2011-09-13 122 views
0

MySQL/ASP - 刪除重複行
我有一個包含100,000行的表,名爲'photoSearch'。當從其他桌子上傳輸數據(花了血腥的時間,我很累)時,我不小心忘記了移除了我做的測試轉移,在我把所有東西一次性轉移之前,在表格中留下了3500行。MySQL/ASP - 刪除重複行

ID列是'photoID'(INT),我需要刪除照片ID小於6849的所有重複項。如果我可以刪除重複項,那將比刪除表並開始另一次轉移。

有沒有人有最實際和最安全的方式來做到這一點的任何建議?


UPDATE:

我居然回答我的問題。爲了安全,我備份了我的桌子,然後我跑了這個:

ALTER IGNORE TABLE photoSearch ADD UNIQUE INDEX unique_id_index(photoID);

此刪除了所有3500次重複在一分鐘內:)


+0

你可以給photoSearch結構嗎? –

回答

0

傳統方法

備份您現有的表photoSearch喜歡的東西tmp_photoSearch使用

create table tmp_photoSearch select * from photoSearch; 

下之後,你可以執行數據按摩到表tmp_photoSearch
一旦你得到的結果不如預期,
執行交換表

rename table photoSearch to photoSearch_backup, tmp_photoSearch to photoSearch; 

爲了提高插入速度(如果瓶頸不在網絡傳輸),

http://dev.mysql.com/doc/refman/5.0/en/insert-speed.html

爲了提高MyISAM表的性能,對於LOAD DATA INFILE和INSERT,放大關鍵cac他通過增加key_buffer_size系統變量

+0

感謝您的建議,但很容易,作爲一個業餘愛好者,聽起來有點棘手。我其實回答了我自己的問題。爲了安全,我備份了我的桌子,然後我跑了這個: ALTER IGNORE TABLE photoSearch ADD UNIQUE INDEX unique_id_index(photoID); 這在一分鐘內刪除了所有3500重複:) – TheCarver