加入非常大的名单

时间:2010-08-20 08:13:27

标签: algorithm data-structures join distributed-computing

让我们先说一些数字: 列表中最大的是大约100M的记录。 (但预计会增长到500)。其他列表(其中5-6个)以百万计,但在可预见的未来将小于100M。 这些始终基于单个ID加入。并且从不与任何其他参数。 什么是加入此类列表的最佳算法?

我正在考虑分布式计算。有一个很好的哈希(循环哈希种类,你可以添加一个节点,并没有很多数据移动)功能,并将这些列表拆分成几个较小的文件。因为,他们总是加入共同的id(我将要哈希),它将归结为加入小文件。也许可以使用nix join命令。

DB(至少MySQL)将使用合并连接加入(因为它将在主键上)。这会比我的方法更有效吗?

我知道最好测试一下。但考虑到这些文件的大量,它非常耗时。我想做一些理论计算,然后看看它在实践中是如何展开的。

对这些或其他想法的任何见解都会有所帮助。我不介意它需要稍微长一点,但更喜欢我拥有的资源的最佳利用。没有庞大的预算:)

1 个答案:

答案 0 :(得分:5)

使用数据库。它们是为执行连接而设计的(当然还有正确的索引!)