MySQL 5.7以降でJSONデータ型を使用するには、まず互換性のあるバージョンのMySQLを使用していることを確認する必要があります。 MySQL 5.7以降、JSONデータ型が導入されており、JSONドキュメントをテーブル列に直接保存するために使用できます。 JSONデータ型を使用するための段階的なガイドを次に示します。
JSON列でテーブルを作成する:テーブルを作成するときは、列のJSONタイプを指定します。例えば:
<code class="sql">CREATE TABLE my_table ( id INT AUTO_INCREMENT PRIMARY KEY, data JSON );</code>
JSONデータの挿入:JSONデータをJSON列に直接挿入するか、文字列を介して挿入できます。 MySQLはJSON構造を自動的に検証します。
<code class="sql">INSERT INTO my_table (data) VALUES ('{"name": "John", "age": 30}');</code>
JSONデータの操作:MySQLは、JSONデータを操作するためのさまざまな機能を提供します。たとえば、既存のJSONドキュメントに新しいフィールドを追加するには:
<code class="sql">UPDATE my_table SET data = JSON_SET(data, '$.city', 'New York') WHERE id = 1;</code>
クエリJSONデータ:JSON関数を使用して、JSON列からデータを抽出できます。
<code class="sql">SELECT JSON_EXTRACT(data, '$.name') AS name FROM my_table;</code>
JSONデータのインデックス作成:MySQLは、JSONドキュメント内の特定のフィールドのインデックス作成をサポートしており、クエリパフォーマンスを改善できます。例えば:
<code class="sql">CREATE INDEX idx_data_name ON my_table ( (JSON_EXTRACT(data, '$.name')) );</code>
MySQLでJSONデータ型を使用すると、データストレージにいくつかの利点があります。
MySQLでJSONデータを効率的にクエリしてインデックスするには、これらの戦略に従うことができます。
JSON関数の使用:MySQLは、データをクエリするためのJSON関数のリッチセットを提供します。たとえば、特定のフィールドが存在し、値に一致するドキュメントを検索するには。
<code class="sql">SELECT * FROM my_table WHERE JSON_EXTRACT(data, '$.name') = '"John"';</code>
列の生成:生成された列を使用して、JSONデータから仮想列を作成します。
<code class="sql">ALTER TABLE my_table ADD COLUMN name VARCHAR(255) AS (JSON_UNQUOTE(JSON_EXTRACT(data, '$.name'))) STORED; CREATE INDEX idx_name ON my_table(name);</code>
多値インデックス:JSON内の配列の場合、マルチ値インデックスを作成してクエリを高速化できます。
<code class="sql">CREATE INDEX idx_data_tags ON my_table ( (JSON_EXTRACT(data, '$.tags')) );</code>
json_search :jsonドキュメント内の値を検索するには:
<code class="sql">SELECT * FROM my_table WHERE JSON_SEARCH(data, 'one', 'New York') IS NOT NULL;</code>
その利点にもかかわらず、MySQLのJSONデータ型には、いくつかの制限と潜在的な欠点があります。
これらの制限を理解することは、MySQLでJSONデータ型をいつ、どのように使用するかについて、情報に基づいた決定を効果的に行うのに役立ちます。
以上がMySQL 5.7以降でJSONデータ型をどのように使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。