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.