首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化DB选择查询JSON类型提取

优化DB选择查询JSON类型提取
EN

Database Administration用户
提问于 2020-12-11 14:48:14
回答 1查看 160关注 0票数 1

我们有一个查询,我们想优化它以获得高性能。表中的消息列为JSONB类型,它包含一个大的json对象。有什么方法可以优化这个吗?我们已经在batch_num上找到了一个索引

代码语言:javascript
复制
SELECT jsonb_array_elements_text(message #> '{results}') AS res FROM TABLE WHERE batch_num = '11';
EN

回答 1

Database Administration用户

发布于 2020-12-11 18:42:52

通过使用jsonb建模,您将自己画到了一个角落。要提取属性,必须读取整个大的内容。

我所能想到的最好的方法是将大对象中的期望值分解为它自己的列:

代码语言:javascript
复制
ALTER TABLE mytab
   ADD results jsonb GENERATED ALWAYS AS (message -> 'results') STORED;

这将适用于最近的PostgreSQL版本;对于较早的版本,您可以使用执行相同操作的触发器。

然后,您只需读取results列,而不必读取整个message

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

https://dba.stackexchange.com/questions/281357

复制
相关文章

相似问题

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