假设我正在向Postgres中插入一组JSON对象,例如:
[{ s: 'hi', a: true, b: false }, { s: 'bye', a: false, b: true }]
我可以这样做:
create table test(a json);
insert into test values ('[{ "s": "hi", "a": true, "b": false }, { "s": "bye", "a": false, "b": true }]');
或
create table test2(a json[]);
insert into test2 values (array['{ "s": "hi", "a": true, "b": false }', '{ "s": "bye", "a": false, "b": true }']::json[]);
这两种方法的优点/缺点是什么?
答案 0 :(得分:4)
不要混淆两者。
jsonb
有一个小空间和解除引用开销。ARRAY
JSON[]
解除引用的开销更大(不利于复合)。更不用说,你将拥有两套操作员,它会让人感到困惑。
此外,除非您知道何时使用JSON
,否则请勿使用JSON
。你几乎总是想要JSONB
。至于我甚至不担心角落的情况。