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_STORAGE_SIZE()
JSON_STORAGE_SIZE(json_doc)
関数は、JSON 値を格納するために必要なバイトのおおよそのサイズを返します。サイズは圧縮を使用する TiKV を考慮していないため、この関数の出力は MySQL と厳密には互換性がありません。
SELECT JSON_STORAGE_SIZE('{}');
+-------------------------+
| JSON_STORAGE_SIZE('{}') |
+-------------------------+
| 9 |
+-------------------------+
1 row in set (0.00 sec)