Mysql
 sql >> база данни >  >> RDS >> Mysql

JSON_STORAGE_SIZE() – Намерете размера на съхранение на JSON документ в MySQL

В MySQL, JSON_STORAGE_SIZE() функцията връща броя байтове, използвани за съхраняване на двоичното представяне на JSON документ.

Предоставяте документа JSON като аргумент.

Когато аргументът е JSON колона, тази функция връща пространството, използвано за съхраняване на JSON документа, както е бил вмъкнат в колоната, преди всякакви частични актуализации, които може да са били извършени върху него след това.

Когато аргументът е низ, функцията връща количеството пространство за съхранение в двоичното представяне на JSON, което се създава чрез синтактичен анализ на низа като JSON и преобразуването му в двоично.

Синтаксис

Синтаксисът е така:

JSON_STORAGE_SIZE(json_val)

Където json_val е JSON документът, за който да се върне размерът за съхранение. Това трябва да е валиден JSON документ или низ, който може да бъде анализиран като един.

Пример 1 – Основна употреба

Ето пример за демонстрация.

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

Резултат:

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

В този случай размерът на документа е 13 байта.

Ето малко по-голям JSON документ.

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

Резултат:

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

Значи този е 29 байта.

И ето отново по-голям.

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

Резултат:

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

Пример 2 – Колони на базата данни

Ето пример за получаване на размера на съхранение на JSON документ, който се съхранява в колона на база данни.

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

Резултат:

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

В този случай колоната на базата данни е колона JSON и съдържа следните данни.

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

Резултат:

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

В този случай използвах JSON_PRETTY() функция, за да направи резултатите по-четливи.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте MySQL релационни бази данни в Ubuntu 10.04 LTS (Lucid)

  2. Не може да се свърже със сървър на база данни (работна маса на mysql)

  3. Приставката за удостоверяване „caching_sha2_password“ не се поддържа

  4. имплементирайте LIKE заявка в PDO

  5. Използване на функциите password_hash и password_verify на PHP 5.5