Mysql
 sql >> Baza danych >  >> RDS >> Mysql

JSON_STORAGE_SIZE() – Znajdź rozmiar przechowywania dokumentu JSON w MySQL

W MySQL JSON_STORAGE_SIZE() funkcja zwraca liczbę bajtów używanych do przechowywania binarnej reprezentacji dokumentu JSON.

Podajesz dokument JSON jako argument.

Gdy argumentem jest JSON kolumna, ta funkcja zwraca miejsce używane do przechowywania dokumentu JSON, tak jak został on wstawiony do kolumny, przed wszelkimi częściowymi aktualizacjami, które mogły zostać na nim wykonane później.

Gdy argumentem jest ciąg, funkcja zwraca ilość miejsca do przechowywania w binarnej reprezentacji JSON utworzonej przez przeanalizowanie ciągu jako JSON i przekonwertowanie go na binarny.

Składnia

Składnia wygląda tak:

JSON_STORAGE_SIZE(json_val)

Gdzie json_val to dokument JSON, dla którego należy zwrócić rozmiar pamięci. Musi to być prawidłowy dokument JSON lub ciąg, który można przeanalizować jako jeden.

Przykład 1 – Podstawowe użycie

Oto przykład do zademonstrowania.

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

Wynik:

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

W tym przypadku rozmiar dokumentu wynosi 13 bajtów.

Oto nieco większy dokument JSON.

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

Wynik:

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

Więc ten ma 29 bajtów.

A oto znowu większy.

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

Wynik:

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

Przykład 2 – Kolumny bazy danych

Oto przykład pobierania rozmiaru pamięci dokumentu JSON, który jest przechowywany w kolumnie bazy danych.

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

Wynik:

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

W tym przypadku kolumna bazy danych była kolumną JSON i zawiera następujące dane.

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

Wynik:

[
  {
    "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"
  }
]

W tym przypadku użyłem JSON_PRETTY() funkcja, aby wyniki były bardziej czytelne.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przechowywać datę i godzinę w MySQL z informacją o strefie czasowej?

  2. 3 sposoby na wykrycie, czy ciąg pasuje do wyrażenia regularnego w MySQL

  3. Jak dodawać adnotacje do pola autoinkrementacji MYSQL za pomocą adnotacji JPA?

  4. Jak działa funkcja LOWER() w MySQL

  5. MySQL vs MongoDB 1000 odczytów