关系型数据库存放 json 格式数据

2016-06-10 16:17:30 +08:00
 Yunhao

在学习 mysql 这种关系型数据库的过程中有一个问题:当我们要存放的数据结构不确定,自然也无法确定数据库中表的结构时,可以将数据以 json 的方式存入,但是想请教大家的是,这种方式是否不被推荐,有什么弊端?在实际应用中是否可被使用?

2436 次点击
所在节点    数据库
28 条回复
mofeiwo
2016-06-10 16:22:03 +08:00
具体场景具体分析的。
如果 json 的数据要被搜索的话,会很麻烦的
ichou
2016-06-10 16:23:25 +08:00
不做查询条件没关系的

5.7 已经开始支持 json 类型了
shuax
2016-06-10 16:24:02 +08:00
还不如直接 mongodb
lyragosa
2016-06-10 16:25:50 +08:00
不作为搜索条件无所谓,就是一个大 text 字段而已
Yunhao
2016-06-10 16:26:21 +08:00
@mofeiwo 如果仅仅是为了存储某些信息,一旦插入,就不再做搜索和修改操作,是有使用价值的吧
Yunhao
2016-06-10 16:28:20 +08:00
@shuax 嗯,我也寻找到了这个解决方式。只是好奇如果限制在关系型数据库里面,大家都是怎样解决这个问题的
Yunhao
2016-06-10 16:32:13 +08:00
@ichou 啊哈,我发现我装的竟然还是 5.5.49 ,速去换来研究研究
hxsf
2016-06-10 16:32:54 +08:00
序列化啊,不一定要 json
clino
2016-06-10 16:33:14 +08:00
我经常这么干 当然就是只放不检索的数据
yhxx
2016-06-10 16:33:16 +08:00
最近刚做了一个
直接存成了 text ,取的时候再 parse
也不知道这么做好不好
同求解惑
misaka19000
2016-06-10 16:46:09 +08:00
感觉应该可以
guoer
2016-06-10 17:06:43 +08:00
注意有并发更新导致赃数据的坑
Sunyanzi
2016-06-10 17:20:23 +08:00
如果只是存储而不用于查询的话其实无所谓怎么存 ... JSON 或者序列化甚至直接空格分隔都可以 ...

但如果涉及查询就比较麻烦了 ... 头两年我还在用笨办法 ... 或者建个几十列的大表或者外挂 MongoDB ...

现在就简单很多了 ... 因为 MySQL 5.7 之后有了原生的 JSON 支持 ... 直接就可以一站式解决 ...

我个人超喜欢这功能 ... 除了语法诡异点之外没别的缺点 ... 配合 JSON 那一系列函数和虚拟列简直所向无敌 ...
loading
2016-06-10 17:23:42 +08:00
我有一个应用就是存 json ,不过不是大东西。

数据量大就不方便了,特别是检索里面的内容…
tabris17
2016-06-10 17:31:02 +08:00
如果你的 json 字段是整存整取的话无所谓,否则不推荐
argsno
2016-06-10 17:32:10 +08:00
看需求, MySQL 里面存 json 数据一般就当做序列化处理
aggron
2016-06-10 18:11:27 +08:00
Postgres 也有 jsonb 类型,可以被索引
stevegy
2016-06-10 20:38:07 +08:00
附议楼上的,你需要的是 postgres
murmur
2016-06-10 20:45:27 +08:00
如果不需要检索的数据用 json 存也未必不可
WangYanjie
2016-06-10 23:35:48 +08:00
mysql 5.7 支持 json 字段了,并且可以按字段检索,效率不了解,实际中应该还没有使用的,我估计

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/284779

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX