SQL exists 删除重复记录
从表中删除重复记录,保留ID最大值的一条,以及无重复的记录
delete from T
where exists
(
select 1 from T b
where T .fDGUID=b.fDGUID
and T.fDInTime=b.fDInTime
and T.id<b.id
)
需要注意的是“delete from T ”不能使用表别名;
效率
表中无索引,160万条记录,重复记录49万条;
测试了两次,分别用时15秒、9秒;
另外,曾经测试过,如果用“IN”查询重复记录,效率非常差。
具体脚本就不写出来了,网上应该有,可以参考。