我想存储一个大的 json 哈希(或内容,随心所欲地称呼它),“大”是指超过 1000 个键值对的东西,我不想在该 json 字段上进行任何搜索,我只想从数据库中检索它并将其传递给 JavaScript 进行解析并构建可视化结果。
在 Postgresql 上有一个json
类型和jsonb
类型(也许我可以使用text
字段以及存储 json) 。我只是想为此目的做出正确的选择,所以我想请有经验的人提供一些建议。
假设您正在谈论实际的、严格的 JSON(没有诸如不带引号的键之类的怪癖)...
json
与text
。除了验证 JSON.
jsonb
与这两者相比,它是一个不同的野兽:它是一个成熟的数据结构,具有自己的内部格式,在搜索中具有更多可用的操作。例如json
没有适用的=
(相等运算符)。jsonb
has. (text
也有,尽管它在语义上有所不同。)
索引更明智,但在读取和写入期间必须来回转换。
鉴于,jsonb
这里看起来不是一个合理的选择。
......所以只剩下一个决定要做:
您是否希望确保数据库列中仅包含有效的 JSON 值?在数据库级别?或者您是否信任该数据库的每个客户端(通常是服务器应用程序)只提供有效数据?
json
无论哪种方式都是一个相对安全的选择。 Using text
由于缺乏验证,理论上可以将性能提高到可以忽略不计的程度,但您只能通过基准测试获得特定的数字。但它没有针对非 JSON 值的防护措施,并且客户端中的意外错误可能会被忽视。负责任地测试!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)