现在很多应用环境中都能看到json灵活的影子。各阶段数据层次的递归乘此,能很好的分辨。 一直对mysql的json 很期待的,最近才有时间研究一下。
JSON就是一串字符串,只不过元素会使用特定的符号标注。比如:
关系型数据库实现Json难度在于,关系型数据库需要定义数据库和表结构。为了应对这一点,从MySQL 5.7开始,MySQL支恃了 JavaScript对象表示(JavaScriptObject Notation,JSON) 数据类型。之前,这类数据不是单独的数据类型,会被存储为字符串。新的JSON数据类型提供了自动验证的JSON文档以及优化的存储格式。
MySQL里JSON文档以二进制格式存储,它提供以下功能:
自动验证存储在JSON列中的JSON文档。无效文档产生错误。
优化的存储格式。存储在JSON列中的JSON文档被转换为允许快速读取访问文档元素的内部格式。二进制格式存储的JSON值。
对文档元素的快速读取访问。当服务器再次读取JSON文档时,不需要重新解析文本获取该值。通过键或数组索引直接查找子对象或嵌套值,而不需要读取文档中的所有值。
存储JSON文档所需的空间大致与LONGBLOB或LONGTEXT相同
存储在JSON列中的任何JSON文档的大小都仅限于max_allowed_packet系统变量的值
MySQL 8.0.13之前,JSON列不能有非null的默认值。
数据保存到MySQL,操作方面都提供哪些支持。目前MySQL8.0版本的的Json总支持32个普通函数和 2个空间函数:
