【问题标题】:Are there any cons of having more then one json column in a table表中有多个 json 列有什么缺点吗
【发布时间】:2019-09-15 01:30:56
【问题描述】:

我正在使用 laravel,我目前在一个表中有超过 1 个 json 列。我应该将所有 json 内容放在一列中,还是将多列用于 json 内容是否可以提高性能?

比如我有这两个:

        $table->json('seo')->nullable();
        $table->json('settings')->nullable();

或者有一个名为 meta 的 json 列并存储设置和 seo 会更好吗?

        $table->json('meta')->nullable();

有什么建议吗?如果你给我一些解释为什么或为什么不。

【问题讨论】:

  • 为了提高在大型数据库中搜索和返回结果的效率,通过使用几个不同的列来细化搜索将缩短返回搜索结果的时间。
  • 如果我们排除对这些列的搜索,它们只会被读取,是否有 2-3 个 json 列而不是将它们分组在一个名为 meta 的列中?

标签: mysql laravel


【解决方案1】:

拥有多个JSON 列不会受到处罚。只不过有多个BLOB 列。我的意思是,每行只需要几个字节。但这可能是相对于 JSON 数据大小的微不足道的差异。我不会担心的。

但是,您应该考虑的是定义某种规则,用于在每个 JSON 文档中存储哪些字段。 seosettings 的区别是什么?如果你必须将这个编码项目传递给另一个程序员,他们会知道如何使用这两列吗?

【讨论】:

  • 很好的反馈和很好的问题比尔,我正在制作一个 CMS,有问题的表是帖子/页面表,seo 是存储 seo 相关数据的 json 列,设置将存储一些帖子设置或页面,这些设置将非常简单,它们就在那里,因此每个帖子或页面都可以覆盖帖子、页面类型的一些全局设置。感谢您的反馈!
  • 如果您有时间,我正在制作基于 php 和 javascript 的现代 CMS,请在此处查看:youtube.com/watch?v=pCjZpwH88Z0您的专业知识对我帮助很大,我已经检查过了您的个人资料,感谢您在这里所做的出色工作!多谢! :)
  • 恭喜你的项目!这是大量的工作。
  • 是的,已经开发了 2 年,希望在 5 月底发布 :)
  • 发布一个问题,如果我有时间我可能会发布一个答案,但我也在工作。 :) 简短的回答是:这取决于您需要如何查询数据。过去,我曾建议使用 JSON 作为 EAV 的替代品(您可能正在谈论的属性表)。但是我在这里的其他问题中看到了 JSON 的一些非常糟糕的用法,所以我对 JSON 不太感兴趣。阅读我过去关于 JSON 的一些答案:stackoverflow.com/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 2011-02-28
  • 1970-01-01
  • 2023-02-03
  • 1970-01-01
  • 2011-11-05
  • 1970-01-01
相关资源
最近更新 更多