「データ型」と言うときの意味によって異なります。PostgreSQLなどの一部のデータベースには、全文検索、バイナリストレージメカニズム、インデックス作成、およびデータにアクセスするための完全な一連の演算子を許可するJSONデータ型があります。マリアにはまだありません。データ型は、特にMDEV-9144によって追跡されています。
それでも、バグメンテナーの1人から、MySQL に非常に限られたタイプをもたらします。
JSONデータ型はSQL標準と直接矛盾しています。つまり、JSON_ *関数は引数として文字列を取ります。また、速度に関して
MariaDBはバイナリJSONを必要としません。ベンチマークによると、JSONパーサーはテキストJSONでバイナリJSONのMySQLと同じくらい高速です。つまり、MariaDBでは、JSONに対してVARCHARまたはTEXTを使用できます。検証が必要な場合は、CHECK制約を使用して実行できます。
my_json_column TEXT CHECK (JSON_VALID(my_json_column))
ただし、MySQLとの互換性のためにJSON "type"を追加します。
私の読書から、それは正確にバイナリJSONのポイントではないので、MySQLのドキュメントを参照しましょう。
バイナリ形式は、ドキュメント内の前後のすべての値を読み取らずに、キーまたは配列インデックスによってサーバーがサブオブジェクトまたはネストされた値を直接検索できるように構造化されています。
ここでも、PostgreSQLのはjsonb
ない多くのより多くのものより。
jsonbデータは分解されたバイナリ形式で保存されるため、変換のオーバーヘッドが追加されるため入力が若干遅くなりますが、再解析が不要なため処理が大幅に高速になります。jsonbはインデックス作成もサポートしています。これは大きな利点です。
tldr; Maria DBにはまだJSONタイプがありません。「タイプ」を取得したとしても、それはテキスト検証(PostgreSQLのjson
タイプのような)に対する単なる薄いラッパーです。jsonb
開発者が利点を理解していないように見えるため、バイナリJSONタイプ(PostgreSQLのような)の計画はありません。