首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONB列中的“大”数据

JSONB列中的“大”数据
EN

Stack Overflow用户
提问于 2017-02-09 10:55:06
回答 1查看 1.4K关注 0票数 1

我有一个带有元数据列(JSONB)的表。有时,我会在本专栏上运行查询。示例:

代码语言:javascript
复制
select * from "a" where metadata->'b'->'c' is not null

这个列总是只有小于1KB的小JSON对象。但是对于一些记录(小于0.5%),它可以是>500 sub,因为一些子属性有很多数据。

今天,我只有1000张唱片,一切正常。但是我想我很快就会有更多的记录,我不知道是否有一些大数据(当然,我不是说“大数据”!)会对业绩产生全球性的影响。对于postgres来说,500 it“大”吗?解析“难”吗?也许我的问题太模糊了,如果需要的话我可以编辑。换言之:

在JSONB列中有一些(<0.5%)更大的条目,显著影响了JSON查询的全局性能?

附带注意:假设“大”数据在metadata->'c'->'d'中,我不会对这个特定属性运行任何查询。查询总是针对“小/公共”属性进行的。但“大”属性仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 12:25:17

这是一个理论问题,所以我希望一个一般性的答案能得到满足。

如果您需要数字,我建议您运行一些性能测试。为测试而生成一些大型jsonb对象应该不难。

只要数据是jsonb而不是json,像metadata->'b'->'c'这样的操作就会很快。当一个大的jsonb值被加载并从烤面包桌中解压缩时,你可能会浪费时间(“detoasted”)。

可以通过在表达式上创建索引来避免该问题。然后索引扫描就不需要破坏jsonb,因此将是快速的,无论jsonb有多大。因此,我认为只要您能够为查询进行索引,就不会遇到性能问题。

您应该注意数据库的总大小。如果预期的大小非常大,备份将成为一个挑战。它有助于设计和规划如何丢弃旧的和未使用的数据。这是应用程序设计过程中通常忽略的一个方面,可能会在几年后引起头痛。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42134792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档