In MySQL der JSON_STORAGE_SIZE() Die Funktion gibt die Anzahl der Bytes zurück, die zum Speichern der binären Darstellung eines JSON-Dokuments verwendet werden.
Sie geben das JSON-Dokument als Argument an.
Wenn das Argument ein JSON ist -Spalte gibt diese Funktion den Speicherplatz zurück, der zum Speichern des JSON-Dokuments verwendet wurde, als es in die Spalte eingefügt wurde, vor etwaigen nachträglichen Teilaktualisierungen.
Wenn das Argument eine Zeichenfolge ist, gibt die Funktion die Menge an Speicherplatz in der JSON-Binärdarstellung zurück, die erstellt wird, indem die Zeichenfolge als JSON geparst und in eine Binärdatei konvertiert wird.
Syntax
Die Syntax lautet wie folgt:
JSON_STORAGE_SIZE(json_val)
Wobei json_val ist das JSON-Dokument, für das die Speichergröße zurückgegeben werden soll. Dies muss ein gültiges JSON-Dokument oder eine Zeichenfolge sein, die als eine geparst werden kann.
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Beispiel zur Veranschaulichung.
SELECT JSON_STORAGE_SIZE('{"a": 1}') Result;
Ergebnis:
+--------+ | Result | +--------+ | 13 | +--------+
In diesem Fall beträgt die Dokumentgröße 13 Byte.
Hier ist ein etwas größeres JSON-Dokument.
SELECT JSON_STORAGE_SIZE('{"a": 1, "b": 2, "c": 3}') Result;
Ergebnis:
+--------+ | Result | +--------+ | 29 | +--------+
Dieser ist also 29 Byte lang.
Und hier ist noch einmal ein größerer.
SET @data = '{
"Person": {
"Age": 10,
"Name": "Bart",
"Friends": [
"Bart",
"Milhouse"
]
}
}';
SELECT JSON_STORAGE_SIZE(@data) Result;
Ergebnis:
+--------+ | Result | +--------+ | 86 | +--------+
Beispiel 2 – Datenbankspalten
Hier ist ein Beispiel für das Abrufen der Speichergröße eines JSON-Dokuments, das in einer Datenbankspalte gespeichert ist.
USE Music; SELECT JSON_STORAGE_SIZE(Contents) Size FROM Collections WHERE CollectionId = 1;
Ergebnis:
+------+ | Size | +------+ | 503 | +------+
In diesem Fall war die Datenbankspalte eine JSON-Spalte und enthält die folgenden Daten.
USE Music; SELECT JSON_PRETTY(Contents) Contents FROM Collections WHERE CollectionId = 1;
Ergebnis:
[
{
"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"
}
]
In diesem Fall habe ich JSON_PRETTY() verwendet Funktion, um die Ergebnisse besser lesbar zu machen.