MariaDBはネイティブJSON列のデータ型をサポートしていますか?


13

私は動的列についてではなく、ネイティブ列のJSONデータ型について尋ねています。簡単に言えば、MariaDBのどのバージョンでも次のコードを実行できますか?

CREATE TABLE example (names JSON);

私の知る限り、それはわかりませんが、MariaDBのJSONサポートについて長い間話題になっているので、まだわかりませんが、最終的に実装されたと言う人はいません。

-更新-

MariaDB Jiraでは、JSONデータ型のサポートに関する3つの問題が未解決のままであることがわかりました。つまり、まだ実装されていません。


その更新は問題にすべきではありません、それが答えです。あなたはそれを外に出して、自己回答するべきです。@Omranic。
エヴァンキャロル

> JSONは、MySQLのJSONデータ型との互換性の理由で導入されたLONGTEXTのエイリアスです。mariadb.com/kb/en/library/json-data-type
zx1986

回答:


7

JSONのサポートはMariaDB 10.2で導入される予定です。2017年2月28日の公式MariaDBブログ投稿を参照してください。いくつかのサンプルSQLステートメントと検証があります。

JSONは急速にデータ交換および非構造化データの標準フォーマットになりつつあり、MariaDB 10.2はJSONデータ型がまだ実装されていなくても、JSONサポート関数に範囲を追加します。JSONデータ型がない理由はいくつかありますが、1つは、JSONがテキストベースの形式であるため、実際にはそれほど多くの利点がないことです。このブログ投稿の目的は、JSONとその使用例を説明し、MariaDB 10.2 JSON関数とその使用方法を説明し、JSON処理に役立つMariaDB 10.2に追加されたその他の機能を示すことです。


2
10.2.6まで、ネイティブJSONはまだサポートされていません。
キティガール

1
彼らは10.3の時点でのみjsonをプレーンテキストとして保存します
Musa Haidari

5

「データ型」と言うときの意味によって異なります。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のような)の計画はありません。


ユーザーは、jsonがバイナリであるかどうかに関係なく、PostgresのJSONが構成または分解されて保存されているかどうかは本当に気にしません。JSONにとって重要なのは、a)何を入れて外に出て、有効な入力をチェックする可能性があることです。b)JSONの一部にインデックスを付けて検索できます。3)操作する機能があります。
ヴラディスラフヴァントロブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.