【问题标题】:Best PostgreSQL datatype for storing key-value maps?存储键值映射的最佳 PostgreSQL 数据类型?
【发布时间】:2017-09-01 20:02:41
【问题描述】:

我想在我的 PostgreSQL 表中存储一个简单的键值字符串映射作为字段。我打算将地图视为一个整体;即,始终选择整个地图,并且从不通过其键或值进行查询。

我读过比较 hstorejsonjsonb 的文章,但这些文章并没有帮助我选择最适合我的要求的数据类型,它们是:

  • 只有键值,不需要嵌套。
  • 只有字符串,没有其他类型,也没有null
  • 存储效率,考虑到我在该领域的预期用途。
  • 查询地图的快速解析。

哪种数据类型最适合我的用例?

【问题讨论】:

  • 绝对是hstore
  • IIRC,jsonb 被实现为嵌套的hstore,所以它也应该可以工作。
  • @a_horse_with_no_name 如果你能详细说明的话,我会接受的 :)

标签: json postgresql sqldatatypes jsonb hstore


【解决方案1】:

您可以使用作为键盘映射的 hstore,但我个人会使用 jsonb。这有点矫枉过正,但是,大多数语言都可以原生转换 json 而无需自己解码。

在 json 中,我只是为您要存储的信息存储一个简单的对象或数组。

两者都支持索引并有效存储。

文本中的 Hstore 是您的语言可能不知道的自定义类型格式,因此需要处理数据以插入或查询。

【讨论】:

  • 取决于编程语言hstore 不需要任何“转换”。例如,JDBC 驱动程序只是为 hstore 列的内容返回一个 Map
猜你喜欢
  • 1970-01-01
  • 2021-12-14
  • 2018-03-16
  • 2012-10-13
  • 2017-08-08
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
相关资源
最近更新 更多