Ce face JSON_STORAGE_SIZE()
MySQL stochează coloanele JSON într-un format binar optimizat. JSON_STORAGE_SIZE() arată mărimea acestui format, util când estimezi spațiul ocupat de un tabel.
JSON_STORAGE_FREE() arată câți octeți au rămas liberi într-o valoare după o actualizare parțială pe loc (cu JSON_SET(), JSON_REPLACE() sau JSON_REMOVE()). Pentru valori noi este 0.
Parametri
| Parametru | Descriere |
|---|---|
valoare / coloana |
Documentul sau coloana JSON analizată. |
Ce returnează
Un număr de octeți.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE profiluri (
id INT PRIMARY KEY,
date JSON
);
INSERT INTO profiluri VALUES
(1, '{"nume": "Ana", "oras": "Iași", "varsta": 31, "hobby": ["citit", "înot"], "adresa": {"strada": "Lăpușneanu", "nr": 12}}'),
(2, '{"nume": "Dan", "oras": "Cluj", "varsta": 45, "hobby": ["ciclism"]}'),
(3, '{"nume": "Ioana", "oras": "Iași", "varsta": 27, "hobby": []}');
Exemplul 1: Mărimea profilurilor
SELECT id, JSON_STORAGE_SIZE(date) AS octeti, JSON_STORAGE_FREE(date) AS liberi
FROM profiluri
ORDER BY id;
Rezultat
+----+--------+--------+
| id | octeti | liberi |
+----+--------+--------+
| 1 | 136 | 0 |
| 2 | 76 | 0 |
| 3 | 68 | 0 |
+----+--------+--------+
Greșeli frecvente
- Compari
JSON_STORAGE_SIZE()cu lungimea textului. Formatul binar are alt overhead, deci cele două valori diferă.
Comenzi înrudite
JSON_LENGTH(): Numărul de elemente al unei liste sau numărul de chei al unui obiect JSON.LENGTH(): Returnează lungimea unui text în octeți (bytes), nu în caractere.