0

わかりました。私はMongoDBを初めて使用し、MongoDBに関する本を読んでいます。

「4MBを超えるドキュメント(BSONに変換した場合)はデータベースに保存できません」

わかりました...ドキュメントの上限は4MBですか?私を混乱させたのは、彼らが括弧内に言っていることです:( BSONに変換されたとき):それで、BSONに変換されたときにサイズが変更されますか?

数行後にそれが言っているので:

「4MBの大きさを知るために、戦争と平和の全文はわずか3.14MBです。」

何?さて、私は混乱しています。助けて!

4

1 に答える 1

2

理論的には、BSON ファイルにはフィールド名も含まれており、これがスペースとオーバーヘッドを占有します。一般に、オーバーヘッドは数バイト以下です。いくつかのドキュメント オーバーヘッド (数バイト) に加えて、保存された各値には追加のストレージ バイトもあります。単純な文字列の場合、6 バイト余分に必要です (タイプに 1、長さに 4、末尾の \0 文字に 1)。オーバーヘッドはbsonspec.org Web サイトで確認できます。単純な文字列の長さ自体は「BSONに変換した場合」は変わりませんが、長さなどを追加すると少し大きくなります。ほとんどのドライバーには、ドキュメントのサイズを把握するためのヘルパー関数があります。PHP では、次のようにします。

<?php
$document = array(
    '_id' => new MongoId(),
    'name' => 'Derick'
);
echo strlen(bson_encode($document)), "\n";
?>

この場合、どちらが印刷されますか39

また、現在のドキュメントの制限は 16 MB です。これは、本が書かれてから変更されています。

于 2012-05-26T21:25:57.237 に答える