有一个数据表,共三个字段:id,data,datetime
。
其中 data
是不能重复的,但是由于粗心在最开始的时候忘记给data
字段设置了unique
约束。
在插入数据的过程中造成了大量重复。
目前:
数据总量(count(* )
)是 50W,不重复数据量 (distinct(data)
) 35W。
使用如下语句进行去重(网络上找的):
delete from bj where data_info in
(select data_info from
( select data_info from bj group by data_info having count(data_info)>1) a)
and id not in
( select min(id) from
(select min(id) as id from bj group by data_info having count(data_info)>1 ) b)
先测试了总量为 1000 的数据,功能是 OK 的。
然后在单核 2G 的云主机上对 50W 总量的数据跑这个 sql,跑了超过 1 个小时还没有出结果。
在此感谢各位老哥。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.