Summary: in this tutorial, you will learn how to use the MySQL JSON_STORAGE_SIZE() function to get the storage size of a JSON document.
Introduction to MySQL JSON_STORAGE_SIZE() function
The JSON_STORAGE_SIZE() function returns the storage size in bytes of a JSON document. It can be useful for estimating the storage requirements of JSON data.
Here’s the syntax of the JSON_STORAGE_SIZE() function:
JSON_STORAGE_SIZE(json_val)Code language: SQL (Structured Query Language) (sql)In this syntax:
json_val: This is the JSON value for which you want to get the storage size. The json_value must be a valid JSON document or a string that can be parsed as a valid JSON document.
The JSON_STORAGE_SIZE() function returns an integer that represents the number of bytes of a JSON value. The function returns NULL if the json_val is NULL.
The function will raise an error if the json_val is not NULL and cannot be parsed as a JSON document.
MySQL JSON_STORAGE_SIZE() function examples
Let’s take some examples of using the JSON_STORAGE_SIZE() function.
1) Using the MySQL JSON_STORAGE_SIZE() function with a JSON object
The following example uses the JSON_STORAGE_SIZE() function to get the size of a JSON object:
SELECT
JSON_STORAGE_SIZE(
'{"name":"John","age":30,"city":"New York"}'
) size;Code language: SQL (Structured Query Language) (sql)Output:
+------+
| size |
+------+
| 51 |
+------+
1 row in set (0.00 sec)Code language: SQL (Structured Query Language) (sql)In this example, the function returns the storage size required for the provided JSON object, which is 51 bytes.
2) Using the JSON_STORAGE_SIZE() function with an array
The following example uses the JSON_STORAGE_SIZE() function to get the size of a JSON array:
SELECT
JSON_STORAGE_SIZE('[1, 2, 3]') size;Code language: SQL (Structured Query Language) (sql)Output:
+------+
| size |
+------+
| 14 |
+------+
1 row in set (0.00 sec)Code language: SQL (Structured Query Language) (sql)3) Using the JSON_STORAGE_SIZE() function with a table data
We’ll use the employees table from the sample database:
First, create a new table called employee_results:
CREATE TABLE employee_results(
id INT PRIMARY KEY,
data JSON
);Code language: SQL (Structured Query Language) (sql)Second, insert data from the employees table into the employees_results table:
INSERT INTO employee_results(id, data)
SELECT
employeeNumber,
JSON_OBJECT(
'firstName', firstName, 'email', email
)
FROM
employees;Code language: SQL (Structured Query Language) (sql)Third, get the size of the data column using the JSON_STORAGE_SIZE() function:
SELECT
id,
data,
JSON_STORAGE_SIZE(data) size
FROM
employee_results;Code language: SQL (Structured Query Language) (sql)Output:
+------+----------------------------------------------------------------------+------+
| id | data | size |
+------+----------------------------------------------------------------------+------+
| 1002 | {"email": "[email protected]", "firstName": "Diane"} | 68 |
| 1056 | {"email": "[email protected]", "firstName": "Mary"} | 69 |
| 1076 | {"email": "[email protected]", "firstName": "Jeff"} | 69 |
...Code language: SQL (Structured Query Language) (sql)Summary
- Use the
JSON_STORAGE_SIZE()function to get the storage size in bytes of a JSON document