3

最初にいくつかの数字を挙げてみましょう。リストの最大のものは約 1 億レコードです。(ただし、500 まで増加すると予想されます)。他のリスト (そのうちの 5 ~ 6 個) は数百万ですが、当面は 1 億にも満たないでしょう。これらは常に単一の ID に基づいて結合されます。他のパラメーターを使用することはありません。そのようなリストに参加するための最良のアルゴリズムは何ですか?

私は分散コンピューティングのラインで考えていました。適切なハッシュ (ノードを追加でき、データの移動があまりない循環ハッシュの種類) を機能させ、これらのリストをいくつかの小さなファイルに分割します。そして、それらは常に共通のID(私はハッシュします)で結合されているため、小さなファイルに結合することになります. そのために nix join コマンドを使用することもできます。

DB (少なくとも MySQL) はマージ結合を使用して結合します (主キー上にあるため)。それは私のアプローチよりも効率的でしょうか?

私はテストして見るのが最善であることを知っています。しかし、これらのファイルの大きさを考えると、かなり時間がかかります。そして、理論的な計算を行い、実際にどのように公平になるかを確認したいと思います.

これらまたは他のアイデアに関する洞察は役に立ちます。少し時間がかかってもかまいませんが、私が持っているリソースを最大限に活用したいと考えています。莫大な予算はありません:)

4

1 に答える 1

5

データベースを使用します。それらは結合を実行するために設計されています (もちろん、正しいインデックスを使用して!)

于 2010-08-20T08:15:23.373 に答える