概述
Mysql从5.7.8版本开始支持JSON字段,可以高效的处理JSON文档。相比字符串字段,JSON字段有下面的几处优势:
-
自动的校验JSON格式,无效的文档会产生错误
-
优化的存储格式(结构化的二进制格式),访问数据时不需要额外的解析,可能通过键或者数组索引来直接该问数据,而不是读取整个字段。
JSON字段的存储空间要求与LONGBLOB和LONGTEXT是一样的(L + 4 bytes, where L < 2^32)。同时JSON字段的默认值只能是NULL。
为了操作JSON字段,提供了一系列的JSON和GeoJSON函数。
和其他的二进制类型一样,JSON字段不支持索引,但可以通过提取值的方式生成(虚拟)索引。
创建JSON值
新增JSON类型字段与其他类型没什么不同,插入时可以直接按字符串的方式进行插入,但必须是合法的JSON格式,如果不是语法直接报错。另外需要注意的是JSON字段使用utf8mb4字符集和uft8mb4_bin排序,因此1.其他字符集的字符串会被转换,2.JSON文档旭大小写敏感的,null,true,false只能用小写。