【问题标题】:When to use JSON[] instead of JSON?何时使用 JSON[] 而不是 JSON?
【发布时间】:2017-05-19 15:38:38
【问题描述】:

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

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

【问题讨论】:

  • 从不。我看不到 json[] 的任何优点。

标签: sql json database postgresql database-design


【解决方案1】:

永远不要将两者混为一谈。

  1. jsonb 存在小空间和取消引用开销。
  2. ARRAY 存在较大的空间开销和较小的deferencing 开销
  3. 空间开销更大,使用 JSON[] 取消引用的开销更大(有害化合物)。

更不用说,您将有两组运算符,这会令人困惑。

另外,除非您知道何时使用JSON,否则不要使用JSON。你几乎总是想要JSONB。以至于我什至不会担心极端情况。

【讨论】:

    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2022-01-21
    • 2012-04-27
    • 2022-01-01
    • 2014-11-11
    相关资源
    最近更新 更多