【发布时间】:2016-11-11 12:06:50
【问题描述】:
我正在构建一个应用程序,并且在构建我的数据库层时,我有一个问题,我应该创建一个列,以便我可以将多个项目存储为 JSON,还是为我要存储的每个项目创建列?
什么时候应该将 JSON 存储在数据库中,什么时候不应该?
在数据库中存储 JSON 的优缺点是什么?
举个例子,对于所有不需要搜索或索引的列,将它们的值存储在 JSON 数组中会更优化,还是我应该坚持创建有多个列的规范化数据表?
【问题讨论】:
-
json 只是文本。它与任何其他文本具有相同的“成本”。如果您从不需要处理 json 中的单个数据块,那么成本为零。这只是文字。如果您确实需要访问单个块,那么成本很高 - mysql 不知道 json 是什么,这意味着您必须使用字符串操作来访问这些数据块,或者将 json 吸入客户端并在那里解码。
-
除非您使用的是 5.7,否则请参阅 this 和 5.7 的文档验证...我认为如果有人将带有和不带有 json 的无偏见的典型业务场景组合在一起,社区将受益匪浅。几百万行。显示指标。