1

C++ で 6 億レコードのファイルを読み取り、フィールドの特定の基準 (例empl.loacation='FL' and empl.dept=3) に基づいて集計を実行したいと考えています。

C++ の使用は実行可能なオプションですか? 私はデータベースルートに行くことができますが、私の要件が読み取り専用であることを考えると、疑問に思っていました-集計、C ++を使用できますか?

ブーストマルチインデックスライブラリを見ました。この種の操作には、プレーンな C++ や DB よりも適切ですか?

4

1 に答える 1

4

Boost.MultiIndex が請求書に適合するかどうかを判断するには、次の 2 つの質問を自問してください。

  1. ターゲット コンピューターは、構造をメモリに保持するのに十分な能力がありますか? おおよそ N*(I*3*p + sizeof(element)) が必要です。ここで、N は要素の数 (この場合は 600M)、I はインデックスの数、p はポインターのサイズ (4 バイト) です。 32 ビット アーキテクチャでは 64 ビット環境では 8)。
  2. クエリ パターンの数は比較的少なく固定されていますか? クエリパターンとは何かというと、「location=A and dept=B」という例に言及されています。これ何個持つの?(いくつかの最適化を適用すると、クエリ パターンごとにインデックスが必要になります。)

両方の質問に対する答えが「はい」の場合、Boost.MultiIndex が役に立ちます。

于 2012-09-19T20:32:53.963 に答える