MySQL / ASP - 删除重复行

时间:2011-09-13 23:32:23

标签: mysql database

MySQL / ASP - 删除重复行
我有一个包含100,000行的表格,名为'photoSearch'。当从其他表格中传输数据时(那些血腥的年龄让我感到厌倦了),我不小心忘记删除了我做过的测试转移,在我将所有内容一次性转移之前,在表格中留下了3500行。

ID列是'photoID'(INT),我需要删除所有photoID小于6849的重复项。如果我可以删除重复项,那么删除表并启动另一个表就不那么痛苦了。传输。

有没有人就最实际和最安全的方法提出任何建议?


更新

我实际上回答了我自己的问题。为了安全起见,我备份了我的桌子,然后我跑了这个:

  

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

这在一分钟内删除了所有3500个副本:)


1 个答案:

答案 0 :(得分: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,通过增加key_buffer_size系统变量来扩大密钥缓存