[解決済み] MongoDB BSON ドキュメントサイズ制限を理解する
質問
MongoDB ザ・ディフィニティブ・ガイドより。
4MB(BSONに変換した場合)以上のドキュメントは作成できません。 データベースに保存されます。これはやや恣意的な制限です(今後変更される可能性もあります)。 これは、スキーマの設計ミスを防ぐため、また、将来的に引き上げられる可能性があります。 一貫した性能を発揮します。
この制限がよくわからないのですが、たまたま4MBを超えた多くのコメントを含むブログ記事を含む文書は、1つの文書として保存できないということでしょうか?
また、ネストされたドキュメントもカウントされるのでしょうか?
ある値への変更を監査する文書が必要な場合はどうすればよいのでしょうか。(最終的には4MBを超える可能性があります)。
どなたか正しく説明してくださるといいのですが。
私はちょうどMongoDBについて読み始めたところです(私が学んでいる最初のnosqlデータベース)。
ありがとうございました。
解決方法は?
まず、これは実際に次のバージョンで上げられている
8MB
または
16MB
しかし、10gen(MongoDBを開発した会社)のEliotは、このことを最もうまく表現していると思います。
EDITです。
サイズが
正式に
に「引き上げ」ました。
16MB
つまり、あなたのブログの例では、4MBは 実は、いっぱいあるんです。例えば の全文が圧縮されていない。 は364k(html)しかありません。 http://www.gutenberg.org/etext/36
ブログの記事がそんなに長くて コメント数が多いので、私としては 読みに行く)
トラックバックの場合、1MBを専用にすれば を使えば、簡単に 10k以上(おそらく20kに近い)。
そのため、本当に奇妙な場合を除き という状況でも、うまくいくでしょう。そして 例外的なケースやスパムは、本当に 20mbのオブジェクトは必要ないと思います。 ということです。トラックバックの上限は 15k程度であれば、かなり理にかなっていると思います。 パフォーマンス的にはどうなんだろう。あるいは、少なくとも を、少なくとも特別なケー が発生します。
-エリオット
限界に達するのはかなり難しいと思います......時間が経つにつれて、アップグレードすれば......心配する必要はなくなると思います。
制限の主なポイントは、サーバーのすべてのRAMを使い切らないようにすることです(すべてのRAMをロードする必要があるため)。
MB
をRAMに保存します)。
つまり、一般的なシステムで通常使用可能なRAMの何%かが上限となり、それは年々増加し続けるでしょう。
MongoDBにファイルを保存する際の注意点
を超えるサイズのドキュメント(またはファイル)を保存する必要がある場合、そのドキュメント(またはファイル)は
16MB
を使用することができます。
GridFS API
これは、データを自動的にセグメントに分割し、ストリーミングで返します(したがって、サイズ制限/RAMの問題を回避することができます)。
GridFSは、ファイルを1つのドキュメントに格納するのではなく、ファイルをパーツ(チャンク)に分割し、各チャンクを別のドキュメントとして格納します。
GridFSでは、ファイルを格納するために2つのコレクションを使用する。1つはファイルのチャンクを格納するコレクション、もう1つはファイルのメタデータを格納するコレクションです。
この方法を使えば、SQLデータベースと同じように、画像、ファイル、動画などをデータベースに格納することができます。私はこの方法で、数ギガバイトのビデオファイルを保存したこともあります。
関連
-
プロファイルを使用してMongoDBで遅いクエリを分析する手順
-
MongoDBのメモリ管理関連まとめ
-
mongodb フィールド値自己増殖型実装コード
-
[MongoDB] 127.0.0.1:27017 への接続に失敗しました、理由。接続が拒否されました
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] mongodbの最後のN個のレコードを取得する方法は?
-
[解決済み】MongoDBがv4以前にACID準拠でなかったことの本当の意味は?
-
[解決済み] MongoDBと「結合」 [重複]について
-
[解決済み] Mongoose を使って MongoDB ドキュメントからキーを削除する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン