MySQL/ASP -删除重复行
我有一个100,000行的表,叫做“photoSearch”。当从其他表中传输数据时(这花费了很长时间,而且我很累),我不小心忘记了删除我所做的测试传输,在一次调用所有数据之前,它在表中留下了3500行。
ID列是' photoID‘(INT),我需要删除photoID小于6849的所有重复项。如果我能移除重复的数据,就不会像删除表并开始另一次传输那样痛苦。
有没有人对最实际和最安全的方法有什么建议?
更新:
我实际上回答了我自己的问题。为了安全起见,我备份了我的桌子,然后运行了这个:
修改忽略表photoSearch添加唯一索引unique_id_index (photoID);
它在一分钟内删除了所有3500个副本:)
发布于 2011-09-14 05:26:18
传统方法
将现有表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
为了提高
表的性能,为加载数据INFILE和INSERT,通过增加key_buffer_size系统变量
来扩大密钥缓存
https://stackoverflow.com/questions/7409715
复制相似问题