海量数据对比去除重复的解决方案

海量数据对比去除重复的解决方案

最近有个北京的做邮件营销的朋友,他手里很多个几百万的数据,需要做去除重复处理。

以下是我在摸索过程中的找到的一些解决方案,供大家参考:

1:自己写程序来实现:

此功能能够实现,但涉及的技术非常繁琐,需要耗费大量时间:

1)  集合运算的基础知识

2)  多线程处理

3)  文本文件读写操作

4)  集合或数组的基本操作

然后软件调试……

 

2:寻找市场上成熟的去除重复的软件

发现现成的软件满足不了要求,订制开发的话,软件公司的报价比较高,一个工作日需要1000元以上。

 

3:利用SQL脚本去除重复

首先把2个文本文件导入Sqlserver数据库,然后运行以下脚本:

1) 查询a,b中重复的邮件:也即 ab

Select mail from a where mail in (select mail from b )

2) 查询a中有,b中没有的邮件,也即ab

Select mail from a where mail not  in (select mail from b )

3) 查询b中有,a中没有的邮件,也即ba

Select mail from a where mail not  in (select mail from b )

4) 查询a,b都有的邮件,也即ab

Select col001 from a

Union

Select col001 from b

执行过程中发现:内存占用:1.3G  CPU占用:99%

这种方法对计算机的硬件配置要求比较高,内存要求2G 以上。

 

结果发现:方案3是快速可行的解决方案,

 

 

 

 

 

你可能感兴趣的:(数据库开发,BS开发)