1

巨大なファイル (> 3 GB) からデータを読み取る C プログラムを作成しました。ファイル内の各レコードは、キーと値のペアです。クエリが来るたびに、プログラムはキーを検索し、値を更新する場合と同様に、対応する値を取得します。
クエリは高速で送信されるため、この手法は最終的に失敗します。最悪の場合、アクセス時間が長すぎます。サイズが大きいため、メモリ内オブジェクトを作成することもお勧めできません。
この問題を解決する方法はありますか?

4

2 に答える 2

5

確かに、一連の名前と値のペアをラップするそのサイズのファイルは、実際のデータベースへの移行を懇願しているようです。それが失敗した場合、私はおそらく少なくともメモリマップトファイルのアイデアを探求し、常に一部のみが常駐します...

于 2012-09-04T20:47:57.313 に答える
3

How large are the keys, in comparison to their corresponding values? If they are significantly smaller, you might try creating a table in memory between the keys and the corresponding locations within the file of their values.

于 2012-09-04T20:53:35.553 に答える