首页 > 解决方案 > 对于大型数据集,在 Postgres 中,JOINS 是否比使用 JSONB 更好,反之亦然?

问题描述

这是一个简单的用例;

我的应用中有一个帖子实体和一个标签实体。我想在这里运行两种类型的查询;

  1. 获取标签的帖子
  2. 获取帖子的标签

我可以选择的两个选项是

  1. 帖子和标签有单独的表格。然后加入
  2. 在我的帖子表中添加标签作为 jsonb 列。在尝试获取标签(自然)的帖子时,我可以@> "nature"按帖子创建日期进行排序。当我想获取帖子的标签时,我什至不需要做任何事情。

对我来说 JSONB 感觉更容易使用和推理(来自 JS 世界)。但是,如果我采用这种方法,我无法描绘出性能权衡的图景。我知道当我不必过滤/搜索对象本身时,JSOB 会快得多。但是,如果我必须在包含 1M 条记录的帖子表中搜索 JSONB 属性,每条记录都有 20 个左右的标签怎么办?在这种情况下,加入连接会是一个性能更高的选择吗?

标签: postgresqljoinjsonb

解决方案


推荐阅读