WiredTigerは
さまざまなMongoDBストレージエンジンがディスクへの永続的な更新を処理する方法に関係なく、可能な場合は完全な更新ではなく部分的な更新を使用することでパフォーマンス上の利点があります(特に、ドキュメント全体のサイズに比べて小さいフィールド値を設定する場合)。
たとえば、次のことを考慮してください。
- ドキュメント更新用のネットワークトラフィック(任意のストレージエンジン)
- ジャーナルのエントリのサイズ(任意のストレージエンジン)
- レプリケーションoplog のエントリのサイズ (任意のストレージエンジン)
- メモリ内バージョンの更新のサイズ(WiredTiger)
毎回完全なドキュメント更新を送信する場合は、変更が個別のフィールドセットに対するものである場合でも、更新がサーバーに到達する順序が重要であるシナリオも作成します。楽観的なバージョン管理などのアプリケーションロジックを追加して、フィールド値を誤って上書きしないようにすることもできますが、これにより、ユースケースによっては不要な複雑さが追加される可能性があります。