Função MySQL JSON_STORAGE_FREE()

Resumo : neste tutorial você aprenderá como utilizar a JSON_STORAGE_FREE()função MySQL para obter o tamanho de armazenamento de uma coluna JSON que foi liberada após sua atualização.

Introdução à função JSON_STORAGE_FREE do MySQL

A JSON_STORAGE_FREEfunção é usada para obter o espaço (em bytes) de uma coluna JSON que foi liberada em sua apresentação binária após ter sido atualizada pela função JSON_SET(), JSON_REPLACE()ou JSON_REMOVE().

Aqui está a sintaxe da JSON_STORAGE_FREE()função:

JSON_STORAGE_FREE(json_val)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • json_valé um documento JSON válido ou uma string que pode ser um documento JSON válido.

A JSON_STORAGE_FREE()função retornará um valor positivo diferente de zero se a coluna JSON que foi atualizada ocupar menos espaço do que antes da atualização.

Se a coluna JSON ocupar o mesmo ou mais espaço do que antes de ser atualizada, a JSON_STORAGE_FREE()função retornará 0.

Se json_valfor NULL, a JSON_STORAGE_FREE()função retorna NULL.

Exemplo de função MySQL JSON_STORAGE_FREE

Usaremos a employeestabela do banco de dados de exemplo para a demonstração.

Função MySQL JSON_STORAGE_FREE() - Tabela de exemplo

Primeiro, crie uma tabela chamada employee_results:

DROP TABLE IF EXISTS employee_results;

CREATE TABLE employee_results(
    id INT PRIMARY KEY,
    data JSON
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O employee_resultstem duas colunas:

  • id: esta é a coluna da chave primária.
  • data: esta é a coluna JSON que armazenará os dados JSON.

Segundo, insira dados na employee_resultstabela a partir dos dados da employeestabela usando a instrução INSERT INTO SELECT :

INSERT INTO employee_results(id, data) 
SELECT 
  employeeNumber, 
  JSON_OBJECT(
    'firstName', firstName, 'lastName', lastName, 'email', email
  ) 
FROM 
  employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, consulte os dados da employee_resultstabela:

SELECT * FROM employee_results;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------+-----------------------------------------------------------------------------------------------+
| id   | data                                                                                          |
+------+-----------------------------------------------------------------------------------------------+
| 1002 | {"email": "[email protected]", "lastName": "Murphy", "firstName": "Diane"}         |
| 1056 | {"email": "[email protected]", "lastName": "Patterson", "firstName": "Mary"}     |
| 1076 | {"email": "[email protected]", "lastName": "Firrelli", "firstName": "Jeff"}      |
...Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, atualize o sobrenome do número do funcionário 1056de Pattersonpara Doe:

UPDATE 
  employee_results 
SET 
  data = JSON_SET(data, '$.lastName', 'Doe') 
WHERE 
  id = 1056;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por fim, pegue o espaço que foi liberado pela JSON_SETatualização:

SELECT 
  JSON_STORAGE_FREE(data) 
FROM 
  employee_results 
WHERE 
  id = 1056;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------------+
| JSON_STORAGE_FREE(data) |
+-------------------------+
|                       6 |
+-------------------------+
1 row in set (0.01 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A saída mostra que o espaço liberado pela atualização é de 6 bytes.

Resumo

  • Use a função MySQL JSON_STORAGE_FREE()para obter quanto espaço de uma coluna JSON foi liberado após sua atualização.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *