4

次の形式のエントリ (全部で約 8800 万) があります。

userid  age test    value
111 33  SODIUM  140
111 34  POTASSIUM   4.1
333 65.4    CHLORIDE    107
444 24  BICARBONATE 24

最初の3 つのvalue項目 (つまりuseridagetest

このデータを繰り返し検索する最善の方法は何ですか? 私が考えているのkeysは、タプル ( useridagetest) と値がである辞書を作成することですvalue。過去に同様の方法を使用しましたが、この方法ははるかに小さいデータでは非常に遅くなりました。

4

3 に答える 3

5

データベースを使用する必要があります。エントリが多すぎます。非常に多くのデータに対してルックアップとインデックスを作成するのは、データベースの仕事です。

于 2013-04-02T14:54:59.757 に答える
3

メモリ使用量を気にしない場合: dictに固執します。大量のメモリがない限り、上記はすべてのメモリを使い果たす可能性があることに注意してください。少しずつ実行して、どれだけロードできるかを確認してください。簡単なテストでは、少なくとも 16GB の内部メモリが必要であることが示されています。

それ以外の場合: データベースを使用します。SQLiteが含まれており、PostgreSQL はプロの使用に適していますが、Redis などの NoSQL を含む多くの代替手段があり、ここで良いかもしれません。

于 2013-04-02T14:53:45.800 に答える
0

わ、わ、そこ。8800万?のように、88,000,000?

データベースを使用する必要があります。redis非常に軽量で高速なルックアップの代替手段を試してください。キーには最初の 3 つの値を使用できます。

redisデータに対するいくつかの気の利いた操作さえ提供するので、ラウンドトリップを節約できます。

于 2013-04-02T14:53:02.793 に答える