MongoDBコレクションの削除とそのすべてのドキュメントの削除のトレードオフは何ですか?(コレクションは直ちに再作成されると仮定します)MongoDB:コレクションの削除と全文書の削除のトレードオフ
答えて
コレクションからすべてのドキュメントを削除すると、ドキュメントのストレージを解放したり、ドキュメントを指し示すインデックスエントリをクリアしたりするなど、もっと多くの作業が必要になります。代わりにコレクションを削除するだけであれば、コレクションとそのインデックスが使用するエクステントを再利用することになります。
もう1つの違いは、コレクションを削除するとコレクションのインデックスも削除されることです。
単純にコレクションを削除するメリットは、コレクションのすべてのドキュメントを削除するよりもはるかに高速であることです。とにかく(インデックスの再作成を含むと仮定して)あなたのコレクションが「すぐに再作成」される場合、これはおそらく最も魅力的なオプションです。本MongoDB: The Definitive Guide(クリスティーナ・チョードーローとマイケル・ディロフ)の
著者は、彼らがremove
1000000のレコードの対drop
を時限Pythonスクリプトを提供する実験を実行しました。結果はdrop
では0.01秒、remove
では46.08秒でした。現在、ハードウェアやその他の要因によって正確な時間が異なる場合がありますが、drop
の方がはるかに高速であるということを示しています。
参照: Chodorow K.、Dirolf M.(2010)。 「MongoDB:The Definitive Guide」O'Reilly Media、Inc.、Sebastapol、CA、pp.25
ほとんどの場合、コレクションの削除と削除は実装の詳細です。
を削除すると、コレクションに存在する内部状態の更新が1つずつ、になる必要があります。
コレクションを削除するには、大きなデータ構造をデータファイルのデータベース内に解放する必要があります。
コレクションを削除するのは、コレクションが空になるまで1つずつ削除するよりもはるかに高速です。インデックスのような
メタデータ意志コレクションが削除された場合むしろその低下したときよりも、存在しています。
出典:MongDB大学のコースの答えに
- 1. MongoDBサブ文書からサブ文書を削除する
- 2. MongoDB:プロファイリング - 削除
- 3. mongodbから多くの文書を削除します
- 4. Observableコレクションからの削除
- 5. MongoDBコレクションの古いオブジェクトの10%を削除します。
- 6. MongoDBの大きなコレクションからインデックスを削除する
- 7. MongoDB TTLインデックス文書を削除しない
- 8. MongoDBで文書を削除するには?
- 9. MongoDBで埋め込み文書レコードを削除するには?
- 10. RavenDB Management Studio - 文書の削除
- 11. コレクションから削除する
- 12. 削除子コレクションは、親
- 13. MongoDBコンソールで_idで削除
- 14. mongodb古いチャットを削除
- 15. MongoDBでは、コレクションが削除されると、インデックスも自動的に削除されますか?
- 16. nhibernate:削除せずにコレクションからオブジェクトを削除する
- 17. 文書全体からクラスを削除するには
- 18. ストアドプロシージャ(請求書の削除)
- 19. 正規表現を使用してMongoDBコレクションを削除する
- 20. MongoDB:子コレクションからアイテムを削除する
- 21. 削除辞書に
- 22. アラームの解除と削除
- 23. VBAボタンのコレクションを削除する
- 24. CouchDBの圧縮と文書の削除 - 無関係の圧縮?
- 25. 文書から行を削除
- 26. mongodb shantyライブラリのあるIDを持つ文書を削除する方法
- 27. Luceneインデックスの文書の削除と更新
- 28. 安全な削除オブジェクト
- 29. cascade = "全削除孤立"
- 30. JDBC条件文の削除
+1しますが、削除対ドロップで1つの警告、そしてあなたがシャード環境にいるときには、再利用に関連するさまざまなバージョンに比べていくつかのバグがありましたドロップされたコレクション名(または場合によっては接頭辞)。私が知っている最新の関連するバグはこれです:https://jira.mongodb.org/browse/SERVER-4262そしてこれは2.2で修正されています - あなたがたくさんのドロップ/再作成を計画しているなら。 –
チップのおかげで@AdamC!私は、このシナリオが混乱の中でシャーディング/レプリケーションを少しトリッキーにしていると思います。私は家で私のラボにマスター/スレーブの複製設定を持っているので、それを試してみる必要があります。 – Aaron