何时使用JSON []而不是JSON?

时间:2017-05-19 15:38:39

标签: sql json database postgresql database-design

假设我正在向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[]);

这两种方法的优点/缺点是什么?

1 个答案:

答案 0 :(得分:4)

不要混淆两者。

  1. jsonb有一个小空间和解除引用开销。
  2. ARRAY
  3. 存在大量空间开销和小型会议开销
  4. 空间开销较大,使用JSON[]解除引用的开销更大(不利于复合)。
  5. 更不用说,你将拥有两套操作员,它会让人感到困惑。

    此外,除非您知道何时使用JSON,否则请勿使用JSON。你几乎总是想要JSONB。至于我甚至不担心角落的情况。

相关问题