非常大的.txt文件中删除重复行的最快方法

4
什么是从大型 .txt 文件中删除重复行的最佳方法?因为逐个删除重复项很简单,我们可以将此问题转化为仅对文件进行排序。假设由于文件大小,我们无法将整个数据加载到 RAM 中。我正在等待从带有一个唯一索引字段的 SQL 表中检索所有记录(我之前已将文件行加载到表中),并想知道是否存在加速的方法。

在什么硬件上?使用任何特定的编程语言吗? - Jeriko
任何语言、工具、操作系统,只要有想法。我使用MySQL是因为它的索引和(可能)快速的树搜索算法,所以它对我很有效,但我想知道是否有更快的解决方案。 - Piotr Müller
如果已经在mysql中,你不能只是使用SELECT DISTINCT吗?这将是一个一次性的重复过程吗? - Jeriko
使用select distinct将会把查询结果加载到内存中。此外,如果有大量数据,查询的执行时间将会非常糟糕(如果能够正常工作的话)。 - Piotr Müller
1个回答

2
您可以尝试使用布隆过滤器。虽然可能会出现一些误判(但您可以通过增加处理量将其减少到任意接近于0%),但由于您不需要比较甚至对每行进行log(n)搜索,因此速度应该相当快。

1
通过布隆过滤器或其他哈希函数,您可以找到可能的重复项并稍后进行比较和删除。 - Floyd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接