3

圧縮してファイルとして MongoDb GridFS に入れる必要がある長さの異なる約 200 万の文字列があります。

文字列は現在、テーブルの MS SQL TEXT フィールドに格納されています。各行を読み取り、圧縮して GridFS ファイルとして保存するサンプル アプリを作成しました。

1 つのリーダーと、結果を格納する 50 スレッドのスレッド プールがあります。動作しますが、非常に遅いです (平均で 1 秒あたり 100 レコード)。

GridFS へのインポートを高速化する方法があるかどうか疑問に思っていましたか?

Windows で MongoDb 1.6 を使用し、C# および .NET で MongoCSharp ドライバーを使用しています。

4

1 に答える 1

4

1000個の文字列を1000個のGridFSファイルに入れる非常に単純なアプリを実行しているときにプロファイリングすることで、MongoDbCSharpドライバー内の問題を見つけたと思います。

同じファイル名のファイルがコレクションに存在するかどうかのチェックに97%の時間が費やされていることがわかりました。ファイル名フィールドにインデックスを追加しましたが、今では非常に高速です。

私にとっての質問は、ドライバーがファイル名を一意に保つ必要があり、チェックを行う必要があるかどうかです。それが欠落している場合、なぜ一意のインデックスを追加しないのですか?その背後にある理由は何ですか?

于 2010-08-26T13:26:28.337 に答える