让我们把一些数字放在第一位:名单中最大的是大约1亿条记录。(但预计将增长至500人)。其他名单(5-6份)有数百万份,但在可预见的将来将不到1亿份。这些都是基于单个id连接的。从来没有任何其他的参数。加入这些列表的最佳算法是什么?
我在思考分布式计算。拥有一个好的散列(循环哈希类型,可以添加一个节点,并且没有太多的数据移动)函数,并将这些列表分割成几个较小的文件。而且,由于它们总是在普通id (我将进行散列)上连接,这将归结为连接到小文件。也许可以使用nix连接命令。
DB (至少是MySQL)将使用合并连接(因为它位于主键上)。这会比我的方法更有效吗?
我知道最好的测试和观察。但是考虑到这些文件的数量,它非常耗时。我想做一些理论计算,然后看看它在实践中的表现。
任何关于这些或其他想法的见解都是有帮助的。我不介意花更长的时间,但我更愿意最好地利用我拥有的资源。没有庞大的预算:)
发布于 2010-08-20 08:15:23
使用数据库。它们是为执行联接而设计的(当然有正确的索引!)
https://stackoverflow.com/questions/3529198
复制相似问题