Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

JSON_STORAGE_SIZE () - Tìm Kích thước Lưu trữ của Tài liệu JSON trong MySQL

Trong MySQL, JSON_STORAGE_SIZE() hàm trả về số byte được sử dụng để lưu trữ biểu diễn nhị phân của tài liệu JSON.

Bạn cung cấp tài liệu JSON làm đối số.

Khi đối số là JSON , hàm này trả về không gian được sử dụng để lưu trữ tài liệu JSON khi nó được chèn vào cột, trước bất kỳ cập nhật từng phần nào có thể được thực hiện trên đó sau đó.

Khi đối số là một chuỗi, hàm trả về lượng không gian lưu trữ trong biểu diễn nhị phân JSON được tạo bằng cách phân tích cú pháp chuỗi dưới dạng JSON và chuyển đổi nó thành nhị phân.

Cú pháp

Cú pháp như sau:

JSON_STORAGE_SIZE(json_val)

Ở đâu json_val là tài liệu JSON để trả về kích thước lưu trữ. Đây phải là tài liệu JSON hợp lệ hoặc một chuỗi có thể được phân tích cú pháp thành một.

Ví dụ 1 - Cách sử dụng cơ bản

Đây là một ví dụ để chứng minh.

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

Kết quả:

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

Trong trường hợp này, kích thước tài liệu là 13 byte.

Đây là tài liệu JSON lớn hơn một chút.

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

Kết quả:

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

Vì vậy, cái này là 29 byte.

Và đây là một cái lớn hơn một lần nữa.

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

Kết quả:

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

Ví dụ 2 - Cột Cơ sở dữ liệu

Dưới đây là ví dụ về cách lấy kích thước lưu trữ của tài liệu JSON được lưu trữ trong cột cơ sở dữ liệu.

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

Kết quả:

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

Trong trường hợp này, cột cơ sở dữ liệu là cột JSON và nó chứa dữ liệu sau.

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

Kết quả:

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

Trong trường hợp này, tôi đã sử dụng JSON_PRETTY() để làm cho kết quả dễ đọc hơn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xuất và nhập tất cả cơ sở dữ liệu MySQL cùng một lúc

  2. Xóa truy vấn để xóa hàng trong MySQL

  3. Cách sử dụng động nhiều cơ sở dữ liệu cho một mô hình trong CakePHP

  4. Đã vượt quá thời gian chờ nhận được Khóa; thử bắt đầu lại giao dịch mặc dù tôi không sử dụng giao dịch

  5. Cách lưu trữ các ký tự UTF8 trong MySQL