方法一: CREATE TABLE newtable SELECT DISTINCT pwd FROM oldtable 这种方式看起来效率最高,但运行时直接把机器拖死,内存一会儿就用完了。
方法二: 逐条获取再删除重复(每次提取$num条记录,我的$num=50) $result = mysql_query("SELECT MIN(id), pwd FROM tablename WHERE id BETWEEN $id AND $num GROUP BY pwd"); while($row = mysql_fetch_row($result)){ mysql_query("DELETE FROM tablename WHERE id>$row[0] AND pwd='$row[1]'"); } $id += $num; 再通过地址栏或cookie等传递$id,效率太低,处理了100分钟,才删除了30多万条重复
alter ignore table mypwd add unique(pwd);
alter table mypwd drop index pwd;
------解决方案-------------------- 用临时表吧。create temporary table ....
------解决方案-------------------- 试试: