json - Postgres 中 JSON 和 JSONB 的区别

标签 json postgresql sqldatatypes jsonb

<分区>

PosgresSQL 中 JSON 和 JSONB 数据类型有什么区别?

  1. 什么时候应该使用特定的?
  2. 相对于其他人有什么好处或坏处?

最佳答案

json 基本上是一个以原始格式存储 JSON 数据的 blob,甚至保留了一些无关紧要的东西,例如空格、对象中键的顺序,甚至是对象中的重复键。它确实提供了执行一些基本 JSON 操作的能力,例如提取与对象中某个键关联的值,尽管这样做速度很慢,因为它每次都必须解析 JSON blob。它还会验证每个值以检查它是否是有效的 JSON。另一方面,jsonb 以自定义格式存储 JSON 数据,该格式针对某些操作进行了优化,例如提取与对象中某个键关联的值(即它不会重新解析 JSON,它不会线性搜索).此外,jsonb 支持更多操作,例如对象的串联或在对象内部设置一个值。

一般来说,只有当我知道我不会做任何 JSON 操作或只是偶尔做时,我才会使用 json。对于所有其他情况,我使用 jsonb。请注意,对于前一种情况,text 也是一个完全有效的选项,特别是如果您对 json 所做的验证不感兴趣(例如,因为您信任数据)。

关于json - Postgres 中 JSON 和 JSONB 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39637370/

相关文章:

javascript - 如何访问 json 中的数组元素值

javascript - 如何仅在传递的值未定义时更新表? [PostgreSQL]

postgresql - Postgres :\copy syntax error in . sql文件

MySql:Tinyint (2) 与 tinyint(1) - 有什么区别?

sql - 将用户定义的表类型从 VBA 传递到 SQL

json - Angular 2 typescript 对象类型转换

json - 电报机器人 : example json, inline_keyboard

python - 使用规范化展平三重嵌套 JSON

django - 在 Django ORM 中重用子查询进行排序

javascript - 从sql server获取日期时间字段