注册 登录
编程论坛 VB6论坛

请教处理大量数据查重的思路和方法

ictest 发布于 2023-05-17 00:50, 828 次点击
情况说明:
1、一个文件,内有1亿N千万行数据,每行数据为24个字符,这24个字符的字符串组成无规则,1亿N千万行数据无规则排列,需要在这1亿N千万行数据中查找是否有重复的字符串;
2、这单个文件查重完毕后,如果没有重复,与历史N个文件(文件内容格式与条目数同第一条的单个文件)再进行查重,如果没有重复条目,将这个单个文件归于历史文件,等待用于下一个单个文件进行查重。

目前我是这样做的:
1、将这1亿N千万行数据导入空白数据库,进行查重;
2、如果没有重复条目,再将这1亿N千万行数据写入已有历史数据的数据库(先将已有历史数据的数据库另存为新文件),然后进行查重;如果有重复,Msgbox提醒,删除新写入数据的历史数据库,将另存为新文件的历史数据库,改回原文件名;如果没有重复,删除另存为新文件的历史数据库,保留新写入数据的历史数据库。

目前我用的是MDB数据库,单个文件查重不是太慢,但是导入数据库需要不少时间,而且历史数据库每次都导入1亿N千万条数据,很快就会几亿甚至数十亿条、百亿数据的规模,再进行查重,我没试过,估计不会太快,而且运行软件的计算机硬件估计也要很高配置吧?

除去我现在用的这个方法,还有更快并且要求配置不高的方法么,求各位前辈高人赐教。
3 回复
#2
cwa99582023-05-17 07:53
恩恩,你原始的文件是什么格式的文件?
#3
ictest2023-05-17 08:11
以下是引用cwa9958在2023-5-17 07:53:54的发言:

恩恩,你原始的文件是什么格式的文件?

TXT格式
#4
风吹过b2023-05-18 15:32
不要转 mdb ,你可以查一下 mdb 的限制。另外有一个建议是 mdb 保持性能情况下,不建议超过100万记录。你这个数据库,有点超了。
1、上 sql ,如 mssql,mysql。
2、直接用数据引擎打开TXT试试。


1