BSONは10genによって開発されたデータ形式であり、MongoDBは主にデータ格納フォーマットにMongoDBに使用します。BSONベースJSON形式、主な理由の選択JSON変換は、JSON JSONとスキーマレスの特性汎用性です。
BSON主な目標は、以下の3点を達成することになります。
1.速いトラバース速度
JSON形式の場合は、JSONの構造は非常に遅い横断するデータが多すぎにつながります。JSONでは、我々は文書データがこの仕事のためにスキャンされるように、文書のニーズを読み飛ばしてください、あなたは、このようなマッチングの括弧などのトラブルのデータ構造を、一致させる必要があります。
BSONはあなただけで直接指定されたポイントの読み取りに求めることができるように要素の長さを読み取る必要があるので、それはJSONする各要素の主要な改善JSON長の頭の要素がある、です。
2.操作が容易
JSONに、データストレージは、次の2つに文字などから、9-10からの基本値を変更する例のないタイプではありません、その背後にあるすべてのコンテンツが唯一の必要性をバックに移動されることが可能ですことができます。
使用BSONは、あなたは関係なく、数の9から10または長い100に、数値列としてこれを指定することができ、私たちは、データの合計の長さが大きくなるにつながるものではない1のデジタルストレージ上の変更を行います。
もちろん、MongoDBのであれば数は成形から長整数に増加、またはデータの全長が大きくなる原因です。
追加のデータ型を追加します。3.
JSONはデータ交換のために非常に便利なフォーマットが、より限定されたタイプです。
その「バイト配列」データ型の増加に基づいてBSON。これは大幅な計算オーバーヘッドとデータサイズを小さく、それはもはや必要バイナリ変換してbase64でJSONとして記憶保存することができません。
もちろん、時々 、BSONは比較的JSON例えば{「フィールド」:7}のように、また、空間には利点はありません7つの1バイトを使用して、JSONストレージに、およびBSON場合、すなわち、少なくとも4バイト(32ビット)
現在、10genの努力で、BSONは、複数の言語のためのコーデックのパッケージを持っています。そして、Apache 2ライセンスの下でオープンソースです。そして、さらに他のMongoDBを開発しました。
合計:
データ構造:
JSONと同様の文字列が格納され、BSONは、(例えば、配列または構造体など)の構造に応じて格納されています
収納スペース
BSON> JSON
動作速度の
BSON> JSON。文字列を掃引するJSON必要性、および直接BSONを配置することができます。たとえば、検索を横断
変更:
また、JSONの大きな動きの大きなシフト、BSONは必要ありません。