MySQL/ASP-删除重复行

MySQL/ASP-删除重复行,mysql,database,Mysql,Database,MySQL/ASP-删除重复行 我有一张10万行的表格叫做“photoSearch”。当从其他表传输数据时(花了很长时间,我累得要命),我不小心忘了删除我做的测试传输,在我一次传输所有数据之前,它在表中留下了3500行 ID列是'photoID'(INT),我需要删除photoID小于6849的所有副本。如果我可以删除重复项,那么就不会像删除表并开始另一次传输那样痛苦了 有人对最实际、最安全的方法有什么建议吗 更新: 我实际上回答了我自己的问题。为了安全起见,我备份了我的桌子,然后我运行了以下

MySQL/ASP-删除重复行
我有一张10万行的表格叫做“photoSearch”。当从其他表传输数据时(花了很长时间,我累得要命),我不小心忘了删除我做的测试传输,在我一次传输所有数据之前,它在表中留下了3500行

ID列是'photoID'(INT),我需要删除photoID小于6849的所有副本。如果我可以删除重复项,那么就不会像删除表并开始另一次传输那样痛苦了

有人对最实际、最安全的方法有什么建议吗


更新:

我实际上回答了我自己的问题。为了安全起见,我备份了我的桌子,然后我运行了以下命令:

ALTER IGNORE TABLE photoSearch添加唯一索引UNIQUE\U id\U索引(photoID)

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



传统方法

使用

create table tmp_photoSearch select * from photoSearch;
之后,您可以在表
tmp\u photoSearch
中执行数据按摩
一旦您获得了预期的结果,
执行交换表

rename table photoSearch to photoSearch_backup, tmp_photoSearch to photoSearch;

要提高插入速度(如果瓶颈不在网络传输上)

为了提高MyISAM表的性能,对于加载数据填充和插入,通过增加key_buffer_size系统变量来扩大key缓存


你能给出照片搜索的结构吗?谢谢你的建议,但可能很简单,作为一个业余爱好者,听起来有点棘手。我实际上回答了我自己的问题。为了安全起见,我备份了我的表,然后运行了以下操作:ALTER IGNORE table photoSearch ADD UNIQUE INDEX UNIQUE\u id\u INDEX(photoID);这在一分钟内消除了所有3500个副本:)