专栏首页AustinDatabasesMYSQL JSON 初步体验

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

本文分享自微信公众号 - AustinDatabases(AustinDatabases),作者:carol11

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MYSQL 开发设计表是硬邦邦的VARHCAR 还是JSON TYPE 来处理数据更香

    开发在使用MySQL中,建立比较大的VARCHAR字段来存储SQL执行的语句或者利用MYSQL 来存储什么VARCHAR(1000) VARCHAR(2000)...

    AustinDatabases
  • PostgreSQL 的JSON 处理甩“你”几条街

    首先这里的你绝对不是MONGODB ,至于是谁,你是谁,那的先了解POSTGRESQL 处理 JSON 的方式后,才能确定那个你是谁。

    AustinDatabases
  • MYSQL hash join 终于等到她

    MYSQL 的多表联合查询中,只有nest loop 的查询方式,让MYSQL 一致是被“嘲笑”的地方。MYSQL 8.018 后mysql 将拥有HASH J...

    AustinDatabases
  • Javascript[0x04] -- JSON必知必会

    通常在写简历的时候,对于某项技术而言,我们可以用“精通”,“熟悉”和”了解“三种词汇来描述你对它的掌握情况,在写这篇文章的时候,是笔者阅读完《JSON必知必会...

    丰臣正一
  • PHP json_encode 的使用方法

    今天在进行接口加签的时候,发现一个问题,数据一直加签失败; 再查找一番原因后发现原来 json_encode 对反斜杠进行了转义,导致数据一直加签失败 解决办法...

    hedeqiang
  • Java和JavaScript中的JSON

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js...

    端碗吹水
  • Go JSON

    如今在网络编程中JSON这种数据格式占据了较大的市场,如果不出意外,几乎新开发的数据交互,都会使用JSON这种轻量级的数据格式来处理数据交互。所以,怎么解析,转...

    icepy
  • MySQL5.7 JSON实现简介

    本文主要介绍在MySQL 5.7.7开始引入的非结构化数据类型JSON的特性以及具体的实现方式(包括存储方式)。首先介绍为什么要引入JSON的原生数据类型的支持...

    ivansqwu
  • 推荐 9 个 爱不释手的 JSON 工具!

    链接:developer.51cto.com/art/201910/604745.htm

    Java技术栈
  • Qt之JSON教程-介绍篇

    Qt君

扫码关注云+社区

领取腾讯云代金券