mysql 存储json(优缺点)

1.json_merge合并Json并返回

update`user`setinviteeMap=json_merge(inviteeMap,'{“xx1″:100}’)where`account`=’100089′;

2.插入json

update`user`setinviteeMap=json_insert(inviteeMap,’$.a1′,”111″)where`account`=’100089′;

3.插入或许更新json字段。

update`user`setinviteeMap=json_set(inviteeMap,’$.a’,”111″)where`account`=’100089′;

4.更新json字段。

update`user`setinviteeMap=json_replace(inviteeMap,’$.a1′,”updatejson”)where`account`=’100089′;

5.抽取json字段的值。

update`user`setinviteeMap=json_extract(inviteeMap,’$.a’)where`account`=’100089′;

6.将对象转化为json。

update`user`setinviteeMap=json_object(‘a’,1,’b’,2)where`account`=’100089′;

7,移除json的某个属性

update`user`setinviteeMap=json_remove(inviteeMap,’$.b’)where`account`=’100089′;
图片[1]-mysql 存储json(优缺点)-小白之家,mysql存储json优缺点,在最近的一次项目开发进程傍边,在数据表设计阶段,对是否用json格局存储某些数据我们产生了分歧。以往项目中对此点比较随意,致使数据表中有些json格局数据体积很大,层次很深,我忧虑这会下降数据查询和解析的功率。因而我开端思考,mysql中是否应该运用json格局存储数据,若是是那应该何时运用。查阅了不少材料后总结以下:mysql

优势:sql

一、最直接的好处是不用为数据中的每一个key值新建一个字段,可以任意的增减字段而无需修正数据表结构,乃至可以减小数据表的设计。数据库

二、可以减小数据表的查询,减小相关查询,一个查询的结果就可以替代几个查询的结果,下降数据库服务器的压力。json

一起缺陷也是明显的:服务器

一、json数据只是只能用于展现display,若是用于条件查询,数据更新其功率是很低的,而且难于优化,不要尝试在json字段上进行查询优化。性能

二、尽管mysql5.7支撑了json类型,但mysql做为联系型数据库,对标准化的column-per-value支撑更好,包括数据类型约束、长度约束,惟一索引约束,查询索引优化,外键相关,相关查询支撑,运算支撑等,这些都是json中key无法达到的。优化

三、将常常运用的查询字段从json数据中剥离出来形成独自的字段,尽管可以改善查询问题,但你最好有先见之明,若是后期进行剥离就会触及代码修正和数据搬迁,遇到多版本的话,还或许呈现数据冗余的问题,处理很差还会呈现数据不一致问题,并不只仅这么简单,必定慎用。设计

四、存储json的text类型性能并不乐观。索引

五、大JSON的解析性能一样不乐观,而且关于中文数据,纯JSON太占空间了开发

总结:

一、不主张在联系型数据库中运用json格局,若是由于字段不必定,任意性强,何不试试非联系型数据库如MongoDB/Redis。

二、若是运用json格局保存数据,请保证数据只是用做展现,若是触及条件查询、更新等操做请不要运用json。

三、常用的字段主张也不要存放在json中,即便不被用做查询条件,由于应用程序每次解析仍然是一个耗时的操做。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论