加入非常大的名单

nea*_*ise 3 algorithm join distributed-computing data-structures

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

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

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

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

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

Mit*_*eat 5

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