Mysql
 sql >> Database >  >> RDS >> Mysql

JSON_STORAGE_SIZE() – Trova la dimensione di archiviazione di un documento JSON in MySQL

In MySQL, il JSON_STORAGE_SIZE() La funzione restituisce il numero di byte utilizzati per memorizzare la rappresentazione binaria di un documento JSON.

Fornisci il documento JSON come argomento.

Quando l'argomento è un JSON colonna, questa funzione restituisce lo spazio utilizzato per memorizzare il documento JSON così come è stato inserito nella colonna, prima di eventuali aggiornamenti parziali che potrebbero essere stati eseguiti su di esso in seguito.

Quando l'argomento è una stringa, la funzione restituisce la quantità di spazio di archiviazione nella rappresentazione binaria JSON creata analizzando la stringa come JSON e convertendola in binario.

Sintassi

La sintassi è questa:

JSON_STORAGE_SIZE(json_val)

Dove json_val è il documento JSON per il quale restituire la dimensione di archiviazione. Deve essere un documento JSON valido o una stringa che può essere analizzata come tale.

Esempio 1 – Utilizzo di base

Ecco un esempio da dimostrare.

SELECT JSON_STORAGE_SIZE('{"a": 1}') Result;

Risultato:

+--------+
| Result |
+--------+
|     13 |
+--------+

In questo caso, la dimensione del documento è di 13 byte.

Ecco un documento JSON leggermente più grande.

SELECT JSON_STORAGE_SIZE('{"a": 1, "b": 2, "c": 3}') Result;

Risultato:

+--------+
| Result |
+--------+
|     29 |
+--------+

Quindi questo è 29 byte.

Ed eccone di nuovo uno più grande.

SET @data = '{
  "Person": {
    "Age": 10,
    "Name": "Bart",
    "Friends": [
      "Bart",
      "Milhouse"
    ]
  }
}';
SELECT JSON_STORAGE_SIZE(@data) Result;

Risultato:

+--------+
| Result |
+--------+
|     86 |
+--------+

Esempio 2 – Colonne del database

Ecco un esempio di come ottenere la dimensione di archiviazione di un documento JSON archiviato in una colonna del database.

USE Music;
SELECT JSON_STORAGE_SIZE(Contents) Size
FROM Collections
WHERE CollectionId = 1;

Risultato:

+------+
| Size |
+------+
|  503 |
+------+

In questo caso, la colonna del database era una colonna JSON e contiene i seguenti dati.

USE Music;
SELECT JSON_PRETTY(Contents) Contents
FROM Collections
WHERE CollectionId = 1;

Risultato:

[
  {
    "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 questo caso, ho usato JSON_PRETTY() funzione per rendere i risultati più leggibili.