JSON Utility Functions mysql>  SELECT * FROM jtable; +----------------------------------------------+ | jcol | +----------------------------------------------+ | {"a": 10, "b": "wxyz", "c": "[true, false]"} | +----------------------------------------------+ 1 row in set (0.00 sec) mysql>  UPDATE jtable -> SET jcol = JSON_SET(jcol, "$.a", 10, "$.b", "wxyz", "$.c", 1); Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>  SELECT * FROM jtable; +--------------------------------+ | jcol | +--------------------------------+ | {"a": 10, "b": "wxyz", "c": 1} | +--------------------------------+ 1 row in set (0.00 sec) mysql>  SELECT JSON_STORAGE_FREE(jcol) FROM jtable; +-------------------------+ | JSON_STORAGE_FREE(jcol) | +-------------------------+ | 14 | +-------------------------+ 1 row in set (0.00 sec) mysql>  UPDATE jtable -> SET jcol = JSON_SET(jcol, "$.a", 10, "$.b", "wx", "$.c", 1); Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>  SELECT JSON_STORAGE_FREE(jcol) FROM jtable; +-------------------------+ | JSON_STORAGE_FREE(jcol) | +-------------------------+ | 16 | +-------------------------+ 1 row in set (0.00 sec) mysql>  SELECT JSON_STORAGE_FREE(jcol) FROM jtable; +-------------------------+ | JSON_STORAGE_FREE(jcol) | +-------------------------+ | 0 | +-------------------------+ mysql>  UPDATE jtable SET jcol = ’{"a": 10, "b": 1}’; Query OK, 1 row affected (0.05 sec) Rows matched: 1 Changed: 1 Warnings: 0 2389 Updating the column without using  JSON_SET() ,  JSON_REPLACE() , or  JSON_REMOVE()  means that the optimizer cannot perform the update in place; in this case,  JSON_STORAGE_FREE()  returns 0, as shown here: The effects of successive partial updates on this free space are cumulative, as shown in this example using  JSON_SET()  to reduce the space taken up by the value having key  b  (and making no other changes): Now we update the column value using  JSON_SET()  such that a partial update can be performed; in this case, we replace the value pointed to by the  c  key (the array  [true, false] ) with one that takes up less space (the integer  1 ):