スマートスタイル TECH BLOG|データベース&クラウドの最新技術情報を配信

MySQLでJSON型を使う(基本編)

MySQLではバージョン 5.7.8 以降でJSON型がサポートされるようになりました。
このシリーズでは基本編、パフォーマンス編、論理設計編と、JSON型のデータ操作方法やどのような場合に使用を検討するべきかをベンチマーク結果も踏まえて探っていきたいと思います。

今回はJSON型の定義やデータ操作方法についてです。

JSON型の定義

型名をJSONと指定するだけです。

データ型に対して必要なディスクスペースはLONGBLOBやLONGTEXTと同じです。
また、max_allowed_packet (デフォルト4M)の制限を受けるので場合によっては値を変更するなど注意が必要です。

参考 :  MySQL :: MySQL 5.7 Reference Manual :: 12.6 The JSON Data Type

INSERT

JSONの文字列をそのまま値として渡すこともできます。

JSONが間違ってるとちゃんとエラーを返してくれます。

JSON_OBJECT関数を使ってJSON文字列を生成することもできます。

SELECT

JSONの中身を検索条件に加えたい場合はJSON_EXTRACTを使います。

MySQL 5.7.9以降なら column->path による記法も使えます。

SELECT句でもJSON_EXTACTやcolumn->pathは使えます。

UPDATE

JSONの文字列をそのまま渡して更新することもできます。

JSONの一部のデータだけ更新したい場合はJSON_SET関数を使います。

上記に上げた関数以外にも末尾にデータを追加するJSON_APPENDや
データの一部だけ削除するJSON_REMOVEなどがさまざまな関数が存在します。

参考 : MySQL :: MySQL 5.7 Reference Manual :: 13.16.1 JSON Function Reference

まとめ

  • JSON型にはJSONフォーマットの文字列をINSERTすることもできます。
  • JSON_EXTRACT関数などを使えばパス指定した値で検索も可能です。
  • JSON_SET関数などを使えばカラム内のデータの一部だけ変更することも可能です。

次回は「MySQLでJSON型を使う」のパフォーマンス編です。


MySQL

 

Return Top