JSONユーティリティ関数
このドキュメントでは、JSON ユーティリティ関数について説明します。
JSON_PRETTY()
JSON_PRETTY(json_doc)
関数は JSON ドキュメントのフォーマットをきれいにします。
SELECT JSON_PRETTY('{"person":{"name":{"first":"John","last":"Doe"},"age":23}}')\G
*************************** 1. row ***************************
JSON_PRETTY('{"person":{"name":{"first":"John","last":"Doe"},"age":23}}'): {
"person": {
"age": 23,
"name": {
"first": "John",
"last": "Doe"
}
}
}
1 row in set (0.00 sec)
JSON_STORAGE_FREE()
JSON_STORAGE_FREE(json_doc)
関数は、JSON 値がその場で更新された後にバイナリ表現で解放されるstorage容量を返します。
注記:
TiDBはMySQLとは異なるstorageアーキテクチャを採用しているため、この関数は有効なJSON値に対して常に
0
返します。これはMySQL 8.0との互換性で実装されています。TiDBはインプレース更新を行わないことに注意してください。詳細についてはRocksDB のスペース使用量参照してください。
SELECT JSON_STORAGE_FREE('{}');
+-------------------------+
| JSON_STORAGE_FREE('{}') |
+-------------------------+
| 0 |
+-------------------------+
1 row in set (0.00 sec)
JSON_ストレージサイズ()
JSON_STORAGE_SIZE(json_doc)
関数は、JSON 値を格納するために必要なバイト数の概算値を返します。このサイズは TiKV 圧縮を考慮していないため、この関数の出力は MySQL と厳密には互換性がありません。
SELECT JSON_STORAGE_SIZE('{}');
+-------------------------+
| JSON_STORAGE_SIZE('{}') |
+-------------------------+
| 9 |
+-------------------------+
1 row in set (0.00 sec)