2

私は次の設定をしています:

  • 2 GB の RAM を搭載した Mac Pro (はい、それほど多くはありません)
  • MongoDB 1.1.3 64 ビット
  • 1 つのコレクションに 800 万件のエントリ
  • 1 つのフィールド (整数) のインデックスが必要です

呼び出し.ensureIndex(...)には 1 時間以上かかります。実際には、その後プロセスを強制終了しました。私の印象は、時間がかかりすぎるということです。また、プロセスを終了しましたが、インデックスは.getIndexes()後で見ることができます。

ここで何がうまくいかないのか誰にもわかりますか?

4

2 に答える 2

2

BTree 全体を構築する必要があるため、既存のデータ セットにインデックスを追加するには時間がかかると予想されます。これに非常に時間がかかっていると思われる場合、またはパフォーマンスの低下が見られた場合は、リストで質問することをお勧めします。

于 2009-11-20T22:52:28.183 に答える
0

コマンドを指摘したいと思います:

db.currentOp()

これは、サーバーで実行中の現在の操作を出力し、インデックス作成プロセスも表示します。

フォアグラウンドのインデックス作成は 3 ステップで行われ、バックグラウンドのインデックス作成は 2 ステップで行われますが (私の記憶が正しければ)、バックグラウンドのインデックス作成はかなり遅くなります。一方、前景のものはインデックス作成中にコレクションをロックします (つまり、実行中のアプリケーション サーバーではあまり役に立ちません)。

前に述べたように、BTree がどのように機能するかに興味がある場合は、Google で BTree を検索してください。

ここで何がうまくいかないのか誰にもわかりますか?

ssh 経由で実行していますか、それとも何らかの方法でリモート接続していますか? 壊れたパイプの問題のように聞こえます。{background : true} でインデックスを作成しましたか?

于 2011-04-05T12:08:22.677 に答える