gpt4 book ai didi

json - PostgreSQL引入JSONB的解释

转载 作者:bug小助手 更新时间:2023-10-28 01:26:02 25 4
gpt4 key购买 nike

PostgreSQL 刚刚介绍 JSONB在 9.4 版本中,它已经成为趋势 on hacker news .它与以前在 PostgreSQL 中存在的 Hstore 和 JSON 有什么不同?

它有什么优点和局限性,什么时候应该考虑使用它?

最佳答案

首先,hstore是一个 contrib 模块,它只允许你存储 key => value 对,其中 key 和 value 只能是 texts(但是值也可以是 sql NULLs) .

jsonjsonb 都允许您存储有效的 JSON (在其 spec 中定义)。

F.ex.这些是有效的 JSON 表示:nulltrue[1,false,"string",{"foo":"bar"}] , {"foo":"bar","baz":[null]} - hstore 与 JSON 的能力相比只是一个小子集(但如果你只需要这个子集就可以了)。

jsonjsonb 的唯一区别是它们的存储:

  • json 以纯文本格式存储,而
  • jsonb 以某种二进制表示形式存储

这样做有 3 个主要后果:

  • jsonb 通常需要比 json 更多的磁盘空间来存储(有时不会)
  • jsonbjson
  • 花费更多时间从其输入表示中构建
  • json 操作比 jsonb 花费 显着 更多时间(每次在 json 类型值)

jsonb 将在稳定版本中可用时,将有两个主要用例,您可以轻松地在它们之间进行选择:

  1. 如果您只在应用程序中使用 JSON 表示,PostgreSQL 仅用于存储和检索此表示,您应该使用 json
  2. 如果你在PostgreSQL中对JSON值做了很多操作,或者对一些JSON字段使用索引,你应该使用jsonb

关于json - PostgreSQL引入JSONB的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22654170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com