<分区>
PosgresSQL 中 JSON 和 JSONB 数据类型有什么区别?
- 什么时候应该使用特定的?
- 相对于其他人有什么好处或坏处?
<分区>
PosgresSQL 中 JSON 和 JSONB 数据类型有什么区别?
最佳答案
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/