JSONデータは、次の形式で格納できます。
- テキスト(LATINまたはUNICODE)
- バイナリJSON(BSON)
- ユニバーサル バイナリJSON (UBJSON)
デフォルトのストレージ形式は、指定した文字セットのテキスト(またはユーザーのデフォルトの文字セット)です。
オプションのSTORAGE FORMAT句を使用して、JSONデータをバイナリ形式(BSONまたはUBJSON)のいずれかで格納することを指定できます。この句は次の場合にのみ使用できます。
- テーブルの列の属性
- CAST式のJSONデータ型宣言の一部
- JSONコンストラクタのオプションのパラメータ
HELP COLUMNを使用してJSON列のストレージ形式を表示できます。
STORAGE FORMAT句とCHARACTER SET句の両方を使用してJSON型を定義することはできません。バイナリ形式で格納されているJSONデータの文字セットをテキストとしてエクスポートする場合は、UNICODEが使用されます。そのため、UNICODE形式にはCHARACTER SET句は必要ありません。
ストレージ形式の比較
BSONとUBJSONは、一般的にテキスト ベースのJSONと比較して短時間でトラバースできます。これらの形式のいずれかで格納されているデータは抽出技術を使用して検索できます。これらの形式を使用すると、取得時間が改善されていることが分かります。
データの最適なストレージ形式を選択するためのガイドラインとして、さまざまなストレージ形式の比較を次に示します。
JSONテキスト形式
- 挿入時間が最短
- 検索時間がより長い
- 多くの領域が必要な可能性がある
BSON形式
- テキストから変換するときに、妥当性検査が常に暗黙的に行なわれる
- 挿入に最も時間がかかる
- 検索時間がより短く(UBJSONと併用)
- MongoDBを使用してデータを交換するときの操作性が良好
- テキスト形式に比べて、領域を節約できる可能性がある
UBJSON形式
- テキストから変換するときに、妥当性検査が常に暗黙的に行なわれる
- テキスト形式よりは挿入に時間がかかり、BSONよりは挿入に時間がかからない
- 検索時間がより短く(BSONと併用)
- 多くの数値がデータに含まれている場合は領域を節約できる場合がある