如何深入理解并应用MySQL JSON数据类型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计9973个文字,预计阅读时间需要40分钟。
JSON数据类型是MySQL 5.7.8及以上版本开始支持的。在此之前,只能通过字符类型(CHAR、VARCHAR或TEXT)来存储JSON文档。对于字符类型,原生JSON类型具有以下优势:在插入时能自动校验文档。
JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。
相对字符类型,原生的 JSON 类型具有以下优势:
- 在插入时能自动校验文档是否满足 JSON 格式的要求。
- 优化了存储格式。无需读取整个文档就能快速访问某个元素的值。
在 JSON 类型引入之前,如果我们想要获取 JSON 文档中的某个元素,必须首先读取整个 JSON 文档,然后在客户端将其转换为 JSON 对象,最后再通过对象获取指定元素的值。
下面是 Python 中的获取方式。
importjson
#JSON字符串:
x='{"name":"John","age":30,"city":"NewYork"}'
#将JSON字符串转换为JSON对象:
y=json.loads(x)
#读取JSON对象中指定元素的值:
print(y["age"])
这种方式有两个弊端:一、消耗磁盘 IO,二、消耗网络带宽,如果 JSON 文档比较大,在高并发场景,有可能会打爆网卡。
如果使用的是 JSON 类型,相同的需求,直接使用 SQL 命令就可搞定。
本文共计9973个文字,预计阅读时间需要40分钟。
JSON数据类型是MySQL 5.7.8及以上版本开始支持的。在此之前,只能通过字符类型(CHAR、VARCHAR或TEXT)来存储JSON文档。对于字符类型,原生JSON类型具有以下优势:在插入时能自动校验文档。
JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。
相对字符类型,原生的 JSON 类型具有以下优势:
- 在插入时能自动校验文档是否满足 JSON 格式的要求。
- 优化了存储格式。无需读取整个文档就能快速访问某个元素的值。
在 JSON 类型引入之前,如果我们想要获取 JSON 文档中的某个元素,必须首先读取整个 JSON 文档,然后在客户端将其转换为 JSON 对象,最后再通过对象获取指定元素的值。
下面是 Python 中的获取方式。
importjson
#JSON字符串:
x='{"name":"John","age":30,"city":"NewYork"}'
#将JSON字符串转换为JSON对象:
y=json.loads(x)
#读取JSON对象中指定元素的值:
print(y["age"])
这种方式有两个弊端:一、消耗磁盘 IO,二、消耗网络带宽,如果 JSON 文档比较大,在高并发场景,有可能会打爆网卡。
如果使用的是 JSON 类型,相同的需求,直接使用 SQL 命令就可搞定。

