V MySQL je to JSON_STORAGE_SIZE() Funkce vrací počet bajtů použitých k uložení binární reprezentace dokumentu JSON.
Jako argument poskytujete dokument JSON.
Když je argument JSON Tato funkce vrací místo použité k uložení dokumentu JSON tak, jak byl vložen do sloupce, před případnými dílčími aktualizacemi, které na něm mohly být poté provedeny.
Když je argumentem řetězec, funkce vrátí množství úložného prostoru v binární reprezentaci JSON, která je vytvořena analýzou řetězce jako JSON a jeho převodem na binární.
Syntaxe
Syntaxe vypadá takto:
JSON_STORAGE_SIZE(json_val)
Kde json_val je dokument JSON, pro který se má vrátit velikost úložiště. Musí se jednat o platný dokument JSON nebo řetězec, který lze analyzovat jako jeden.
Příklad 1 – Základní použití
Zde je příklad k demonstraci.
SELECT JSON_STORAGE_SIZE('{"a": 1}') Result;
Výsledek:
+--------+ | Result | +--------+ | 13 | +--------+
V tomto případě je velikost dokumentu 13 bajtů.
Zde je o něco větší dokument JSON.
SELECT JSON_STORAGE_SIZE('{"a": 1, "b": 2, "c": 3}') Result;
Výsledek:
+--------+ | Result | +--------+ | 29 | +--------+
Takže tohle má 29 bajtů.
A tady je zase větší.
SET @data = '{
"Person": {
"Age": 10,
"Name": "Bart",
"Friends": [
"Bart",
"Milhouse"
]
}
}';
SELECT JSON_STORAGE_SIZE(@data) Result;
Výsledek:
+--------+ | Result | +--------+ | 86 | +--------+
Příklad 2 – Sloupce databáze
Zde je příklad získání velikosti úložiště dokumentu JSON, který je uložen ve sloupci databáze.
USE Music; SELECT JSON_STORAGE_SIZE(Contents) Size FROM Collections WHERE CollectionId = 1;
Výsledek:
+------+ | Size | +------+ | 503 | +------+
V tomto případě byl sloupcem databáze sloupec JSON a obsahuje následující data.
USE Music; SELECT JSON_PRETTY(Contents) Contents FROM Collections WHERE CollectionId = 1;
Výsledek:
[
{
"Albums": [
{
"AlbumName": "Powerage"
}
],
"ArtistName": "AC/DC"
},
{
"Albums": [
{
"AlbumName": "Ziltoid the Omniscient"
},
{
"AlbumName": "Casualties of Cool"
},
{
"AlbumName": "Epicloud"
}
],
"ArtistName": "Devin Townsend"
},
{
"Albums": [
{
"AlbumName": "Powerslave"
},
{
"AlbumName": "Somewhere in Time"
},
{
"AlbumName": "Piece of Mind"
},
{
"AlbumName": "Killers"
},
{
"AlbumName": "No Prayer for the Dying"
}
],
"ArtistName": "Iron Maiden"
}
]
V tomto případě jsem použil JSON_PRETTY() aby byly výsledky čitelnější.