のドキュメントの膨大なコレクションに、新しいフィールドとインデックスを追加する必要がありますmongodb
。
新しいフィールドのインデックスを作成してから、 を使用UnorderedBulkOp
して各ドキュメントを更新し、そのフィールドをドキュメントに追加するスクリプトの実行を開始しました。
スクリプトは比較的速く開始されました (111 秒/100 万) が、進行するにつれてどんどん遅くなっていきます (現在は 422 秒/100 万まで下がっています)。
- 最初にインデックスを追加してからフィールドを追加したのは正しい決定でしたか? インデックスを更新する必要があるため、これにより更新が遅くなることは承知していますが、スクリプトが完了したときにインデックスを最初から作成する時間を節約できると想定しました。
- スクリプトが進行するにつれてパフォーマンスが大幅に低下する理由はありますか?