480万个ID(1~7位)数据的去重,算法自己设计,随便什么都可以,只要能返回去重后的数据就可以。
被否定的思路:
1、不能使用Excel(最大限度65536)
2、不能使用字符串隔开的方式逐步查找
-- 测试发现,26万能返回数据,480万不行
-- 用python最后运行不出结果而且导致python重置
测试过的处理方式:
1、文件系统分组,然后使用字符串隔开的方式查找
10万数据一个组(文件):花费总时间70分钟,分组:40分钟,去重合并:30分钟
1000数据一个组(文件):花费总时间40分钟,分组30分钟,去重合并10分钟
以上为真实数据,分组越多时间花费越少。
2、数据库插入方式:
把CID作为主键,出错不插入方式。
数据表如下:
CREATE TABLE temp1
(
cid
varchar(8) NOT NULL,
PRIMARY KEY (cid
)
) CHARSET=utf8;
花费时间:36分钟
3、另外可尝试方案:
a)采用多表分组的方式是否会提高SQL处理方式的时间。
b)C++方案是否优于python读写文件方案
c)10数据一个组(文件)方案是否可行?(读文件时间成本和分组成本应当有制约关系)
如果您有更好的解决方案请留言探讨。谢谢。
以上都是基于python的数据测试
文|力卉编程
网友评论