各位同事,请教一个问题,一个表中只有一个字段,字段中存放的几千万IP地址,想得出一个去重后的IP表,但是在MYSQL数据库中直接写distinct语句去重的话,数量量较大,内存不足无法实现,还请问各位有什么好的办法分享下呢

0
已邀请:
0

帆帆 2017-03-06 回答

先做表分区,比如说 
0.0.0.0 -1.1.1.1
1.1.1.1-255.255.255.255
每次整理小的那个分区数据,整理完以后清除数据。
第二次分区
1.1.1.1 -2.2.2.2
2.2.2.2-255.255.255.255
继续循环清理,总有清完的时候。
1

老头子 - 专注是唯一的捷径 2017-03-12 回答

distinct肯定是慢的
可以用表关联来获取重复数据,然后删除,或者讲不重复数据插入新表,然后rename
0

安然存世 2017-03-03 回答

count到ip>1的rowid,拿这个结果集和大表做一下反连接。你看这样行不行。
0

jane_pop 2017-03-06 回答

group by 可以么
0

大乌叶 2017-03-06 回答

学习了,不错!

要回复问题请先登录注册