FROM http://blog.itpub.net/post/330/3981
这个问题本来很简单,但经常见有人问。采用过时的删除方法可能非常的慢,816以后版本可以采用新方法了。
useraccount表,主键为userid,有一个字段为手机号码mobilephone
如果重复的记录的比例不是很大
delete useraccount where rowid in (
select rid from
(select rowid rid,row_number() over(partition by mobilephone order by userid desc) rn from useraccount )
where rn > 1) ;
我是经常用这样的方法删除数据的,上百万记录删除几万条速度还是比较快的。当然如果大量都是重复的,还是干脆做temp表吧 :)
博客介绍了数据库useraccount表重复记录的删除方法。816以后版本可采用新方法,当重复记录比例不大时,用特定SQL语句删除速度较快;若大量为重复记录,建议做temp表。

被折叠的 条评论
为什么被折叠?



