MYSQL JSON 初步体验

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 也可以作为备选的方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值