MongoDBコレクションを削除することと、そのすべてのドキュメントを削除することのトレードオフは何ですか(コレクションがすぐに再作成されると仮定した場合)?
4 に答える
コレクションを単純に削除する利点は、コレクションのすべてのドキュメントを削除するよりもはるかに高速であることです。とにかくコレクションが「すぐに再作成される」場合 (インデックスの再作成が含まれると仮定して)、これはおそらく最も魅力的なオプションです。
『 MongoDB: The Definitive Guide』の著者(Kristina Chodorow と Michael Dirolf) は、1000000 レコードdrop
の a と a を比較する Python スクリプトを提供して実験を行いました。remove
結果は、 が 0.01 秒、 がdrop
46.08 秒でしたremove
。正確な時間はハードウェアやその他の要因によって異なる場合がありますが、それでもdrop
が大幅に高速であることを示しています。
参照: Chodorow K.、Dirolf M. (2010)。「MongoDB: 決定版ガイド」。O'Reilly Media, Inc.、カリフォルニア州セバスタポール、pp.25
コレクションからすべてのドキュメントを削除すると、さらに多くの作業が必要になります(ドキュメントのストレージを解放したり、ドキュメントを指すインデックスエントリをクリアしたりするなど)。代わりにコレクションを削除すると、コレクションとそのインデックスが使用するエクステントが再利用されます。
もう1つの違いは、コレクションを削除すると、コレクションのインデックスも削除されることです。
コレクションの削除と削除は、ほとんどが実装の詳細です。
コレクションを削除するには、コレクションに存在する内部状態を 1 つずつ更新する必要があります。
コレクションを削除するには、データ ファイルのデータベース内の大きなデータ構造を解放する必要があり ます。
コレクションを削除することは、コレクションが空になるまで 1 つずつ削除するよりもはるかに高速です。
インデックスなどのメタデータは、コレクションが削除されたときではなく削除された場合に存在します。
出典: MongDB 大学コース