数据表中直接存放json格式的一些思考

本文探讨了在关系型数据库中使用JSON格式存储数据的利弊。优点包括灵活性,可以避免频繁修改表结构。然而,缺点包括查询效率低下,不易优化,且MySQL等关系库对标准字段支持更佳。建议避免在需要查询和更新操作时使用JSON,考虑使用MongoDB等非关系型数据库,或者仅将JSON用于展示数据。同时,不应将常用字段存储在JSON中,以减少解析成本。
摘要由CSDN通过智能技术生成

优点:

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

2、可以减少数据表的查询,减少关联查询,一个查询的结果就可以代替几个查询的结果,降低数据库服务器的压力。

缺点:

1、json数据仅仅只能用于展示,如果用于条件查询,数据更新其效率是很低的,而且难于优化,不要尝试在json字段上进行查询优化。

2、虽然mysql5.7支持了json类型,
Mysql存放JSON格式的论坛(学习思路):
Storing JSON in database vs. having a new column for each key
但mysql作为关系型数据库,对标准化的column-per-value支持更好,包括数据类型限制、长度限制,唯一索引限制,查询索引优化,外键关联,关联查询支持,运算支持等,这些都是json中key无法达到的。

3、将常用的查询字段从json数据中剥离出来形成单独的字段,虽然可以改善查询问题,但如果后期进行剥离就会涉及代码修改和数据迁移,遇到多版本的话,还可能出现数据冗余的问题,处理不好还会出现数据不一致问题,并不仅仅这么简单,一定慎用。

4、存储json的text类型性能并不乐观。

5、大JSON的解析性能同样不乐观,而且对于中文数据,纯JSON太占空间了 。

总结:

1、不建议在关系型数据库中使用json格式,如果因为字段不确定,任意性强,可以用非关系型数据库如MongoDB/Redis。

2、如果使用json格式保存数据,请确保数据仅仅用作展示,如果涉及条件查询、更新等操作请不要使用json。

3、经常使用的字段建议也不要存放在json中,即使不被用作查询条件,因为应用程序每次解析仍然是一个耗时的操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值