2017-03-29 14 views
1

以前はPostgreSQLデータベースをセットアップしていましたが、jsonでいくつかのデータを保持するためにJSONBを使用していました。それ。 JSONのキーと値を使ってテキスト検索と比較を行うこともでき、すべてうまくいきました。mysqlでjsonbデータを使用して検索する

最近私たちのチームがいくつかの技術的理由により、MySQLに移行することを決めました。だから私の質問は、MySQLのJSONがPostgreSQLのような検索をサポートしていることと、MySQLサポートの安定したJSONが与えられていることです。

+0

可能な複製(http://stackoverflow.com/questions/30411210/how-to-search-json- data-in-mysql) – LuFFy

答えて

1

MySQLのドキュメントから右:

JSONサポートのMySQL 5.7.8以降で

、MySQLはネイティブJSON形式をサポートしています。 JSON 値は文字列として格納されず、内部バイナリ 形式を使用して、文書要素への迅速な読み取りアクセスを許可します。 JSON JSON列に保存されたドキュメントは、 が挿入または更新されると自動的に検証され、無効なドキュメントでは エラーが発生します。 JSONドキュメントは作成時に正規化され、=、<、< =、>、> =、<>、!=、および < =>などの比較演算子をほとんど使用して、 と比較できます。サポートされている演算子についての情報と、優先順位 と、JSON値を比較する際にMySQLが従うその他のルールについては、 JSON値の比較と順序を参照してください。

MySQL 5.7.8には、 JSON値を扱うための関数もいくつか導入されています。これらの関数には、次のものが含まれます。

JSON値を作成する関数:JSON_ARRAY()、JSON_MERGE()、および JSON_OBJECT()第12.16.2項「JSON 値を作成する関数」を参照してください。 JSON値を検索する関数:JSON_CONTAINS()、 JSON_CONTAINS_PATH()、JSON_EXTRACT()、JSON_KEYS()、およびJSON_SEARCH()。 12.16.3項「JSON値を検索する関数」を参照してください。 JSON値を変更する機能 :JSON_APPEND()、JSON_ARRAY_APPEND()、 JSON_ARRAY_INSERT()、JSON_INSERT()、JSON_QUOTE()、JSON_REMOVE()、 JSON_REPLACE()、JSON_SET()、およびJSON_UNQUOTE()。第12.16.4節、 「JSON値を変更する関数」を参照してください。 JSON値(JSON_DEPTH()、JSON_LENGTH()、 、JSON_TYPE()、およびJSON_VALID())に関する情報を に提供する関数。第12.16.5項「 JSON値属性を戻す関数」を参照してください。 MySQL 5.7.9以降では、JSON_EXTRACT(column、path)の略語として のcolumn-> pathを使用できます。これは、 をWHERE、ORDER BY、およびGROUP BY句を含む SQL文で列識別子が発生する可能性のある列のエイリアスとして処理します。この には、SELECT、UPDATE、DELETE、CREATE TABLEなどのSQL ステートメントが含まれています。左側はJSON列識別子(エイリアスではなく )でなければなりません。右側は引用されたJSONパス式 で、これはカラム の値として返されたJSONドキュメントに対して評価されます。

- >およびJSON_EXTRACT()に関する詳細は、12.16.3項「JSON値を検索する関数」を参照してください。 MySQL 5.7のJSON パスのサポートについては、「JSON値の検索と変更」を参照してください。 セカンダリインデックスと仮想生成カラムも参照してください。

また、私たちはMySQLを使用してJSONにデータを格納していますが、パフォーマンスとスケーラビリティに関してはかなりうまく機能しています。

あなたが上でそれについての詳細を読むことができます:[?MySQLでJSONデータを検索する方法]のhttps://dev.mysql.com/doc/refman/5.7/en/json.html

+0

ありがとうございました。これまでにDBで処理したJSONデータの最大サイズは何ですか? –

+0

正確な最大サイズについてはわかりませんが、私たちのjsonデータは、キー値に対してbase64コードのイメージ通知を保存するので、カラムあたり約5〜6MBのデータを保持します。 –

+0

Great.Thanks本当に多くの助けに感謝しています。 –

関連する問題