前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL JSON 初步体验

MYSQL JSON 初步体验

作者头像
AustinDatabases
发布2019-07-22 19:23:28
1.3K0
发布2019-07-22 19:23:28
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

Json 作为程序员最受欢迎的数据格式,使用的越来越广泛了,如果你目前使用的数据库不支持JSON的格式,那显然是满足不了程序员以及 程序微服化的需求以及消息传递和消息承载的要求。

基于这样的要求MONGODB 则变得越来越火,并且在非传统SQL 数据库中基本上坐上NO.1的交椅。

这里如果你有大量的JSON 以及聚合,查询,或者存储部分大容量的字符的情况下,MONGODB 一定会让你满意,并且稳定的集群,以及方便开发者的主从读写分离的设置也是让人满意的。

今天说的是MYSQL 的处理JSON 的方法,如果你不愿意使用MONGODB ,并且JSON 的数据存储的量也不是很大,MYSQL 也是可以处理这样的数据的,这个功能是从MYSQL 5.7 开始的,到8.0 向更先进的方式发展,如果作为传统数据库的有益补充是OK的。

老习惯,我们做一个列子来开始说明

1 创建一个支持 JSON 的表,往 MYSQL 中插入相关的数据

从上图来看,MYSQL进行一个类似JSON 的数据存储还是很方便的。对比MONGODB 的语法,其实对于传统的DBA 会更亲切一些。

从上图中对简单的JSON 的数据进行查询,并且进行相关的计数操作也是很方便的。当然如果你习惯了 MONGODB 的操作方法,则这样的写法可能觉得稍显怪异。

而如果将JSON 的数据以 MYSQL 的方式进显示,则需要借助于MYSQL 为JSON 开发的一些函数,例如 JSON_EXTRACT 下图是 json1 中的数据

我们通过相关的函数,将其查询并且格式化为MYSQL 的显示方式

当然其实MYSQL 的JSON 也是支持索引查询的,虽然和MONGODB 的索引比较,简直是不值得一提,但是还是的提一下。

我们做下面的一个实验

创建一个表并插入大量的测试数据 100多条就可以

我们针对表test_features 建立一个虚拟列,绑定上面表中的JSON 列,

然后在虚拟列上添加索引(虚拟列分为两种,我们用其中的一种)

我们对查询进行explain 可以看到执行计划中已经走了索引

虽然MYSQL已经支持了 JSON 格式的数据存储,并且也提供大量的函数,也支持简单的索引,但和MONGODB 这样的纯处理JSON 的数据库相比,差距很大,如果仅仅是存储一些简单的JSON 数据并且量不是很大,个人感觉,MYSQL 可以作为一个补充,而如果要对JSON 数据进行复杂的查询,聚合,并且数据量较大的情况下,MONGODB 是一个好的选择,当然POSTGRESQL 也可以作为备选的方式。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档