Mysql 能像 MongoDB 那样存储文档了

Mysql 5.7.12 做出了一项重大改进:支持文档型存储,意味着在 Mysql 中就可以像 MongoDB 那样存储 JSON document 了

这项改进的意义非常重大,Mysql是传统的关系型数据库,加入对文档的支持,意味着Mysql要突破‘关系型数据’概念的束缚,融入NoSQL数据库的优势,只要是好到的东西,以后必然会吸收得更多

支持文档存储之后,对已经非常熟悉Mysql,同时又对文档存储有需求的开发者带来了便利,他们可以直接使用Mysql,不必使用 Mysql + MongoDB 的混合环境了

在文档处理的协议上,Mysql并没有选择支持MongoDB的协议,使用了自己的协议,好处是可以更好的支持内置函数和事务,不好的方面是无法让已经使用MongoDB的项目直接使用Mysql了

Mysql的文档存储支持事务,这对需要 Document API,并且不想放弃数据一致性和ACID事务的用户非常重要,也支持对 document field 进行索引,可以轻松引用 document field

其实Mysql在非关系型数据方面早就进行过努力,例如

2009年发布了 MyCached(支持 Mysql的 Memcache协议)

2010年的 HandlerSocket 插件提供了性能更强的接口

2011年Mysql Cluster支持MemcacheD协议

但都是基本的Key-Value接口,后来Mysql发现开发者同时需要具有灵活性的非结构化数据,和具有丰富性的结构化数据,并且这个需求非常大,MySQL 5.7 中便植入了JSON document这个特性

文档存储是Mysql生态中的新鲜成员,成熟度是他的弱势,MongoDB已经提前发展了几年,API非常丰富,有更多产品和框架的支持,文档完善易懂,非常成熟,而Mysql文档存储的稳定性和性能是否可靠还需要时间的验证,对各种开发语言的支持也不够

Mysql是个非常优秀的数据库,例如他的复制和分片在10年就已经很有优势,但后来在易用性和动态扩展能力方面被不少数据库超越了,而这次Mysql能够融合NoSQL数据库的优势的确很令人兴奋

官方文档

http://dev.mysql.com/doc/refman/5.7/en/document-store.html

本文分享自微信公众号 - 性能与架构(yogoup)

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

原始发表时间:2016-06-06

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

关于JSON.stringify和Unicode编码,需要注意的几点

1JSON.stringify会自动把所要转换内容中的汉字转换为Unicode编码 2浏览器间有差别,个别浏览器会把将要提交表单内容中的Unicode编码自动转...

46440
来自专栏程序人生

Policy Engine 的前世今生

作为一个 video streaming service,TubiTV 很重要的一项功能是保证影视剧按照合约上的要求在规定的时间(窗口期),规定的平台,以及规定...

414140
来自专栏Seebug漏洞平台

当代 Web 的 JSON 劫持技巧

Benjamin Dumke-von der Ehe 发现了一种有趣的跨域窃取数据的方法。使用JS 代理,他能够创建一个 handler,可以窃取未定义的 Ja...

37760
来自专栏Golang语言社区

go语言中json转成map结构

package main import ( "encoding/json" "fmt" ) //把请求包定义成一个结构体 type Reques...

34650
来自专栏ChaMd5安全团队

关于JSON CSRF的一些思考

关于JSON CSRF的一些思考 From ChaMd5安全团队核心成员 Maple CSRF作为常见漏洞,一直受到关注和研究,JSON是一种应用广泛的轻量级数...

47890
来自专栏程序人生

浪费内存?多大个事?

遥想盖子当年,MS 红火了,谈笑间,640k 内存足矣。 - 程序君 现在已经不是从指缝中扣内存的时代了。bit 在主流的解释型语言中要么失了踪迹,要么被作为...

52380
来自专栏Android机器圈

Retrofit网络请求库应用02——json解析

PS:上一篇写了Retrofit网络请求库的简单使用,仅仅是获取百度的源码,来证明连接成功,这篇讲解如何解析JSON数据,该框架不再是我们之前自己写的那样用Js...

33460
来自专栏农夫安全

【强势推荐】一款可扫描CVE的工具

CVE-扫描 使用NMap扫描系统,并将输出解析为CVE,CWE和DPE列表 目标: 使用NMap或任何其他扫描工具扫描系统,并使用扫描来分析系统中的漏洞 有多...

75690
来自专栏Golang语言社区

关于JSON.stringify和Unicode编码,需要注意的几点

1JSON.stringify会自动把所要转换内容中的汉字转换为Unicode编码 2浏览器间有差别,个别浏览器会把将要提交表单内容中的Unicode编码自动转...

47480
来自专栏闻道于事

Json格式String类型字符串转为Map工具类

package agriculture_implement.util; import com.google.gson.Gson; import com.goo...

38080

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励