当前位置: 首页 > 知识库问答 >
问题:

只刷新物化视图的一部分?

匡安宜
2023-03-14

我的核心问题是我有一个jsonb数据库列,其中的数据如下所示:

{"ops": [
  {"insert": "yaaaah "},
  {"insert": {"atmention": {"id": "183"}}}, 
  {"insert": "  "},
  {"insert": {"hashtag": "potato"}},
  {"insert": " \n"}
]}

(它是前端的一个羽毛字段的输出,我不想改变这个结构)。目前,我的API注意到该字段有一个hashtag条目,并通过提取hashtag条目(在本例中是“土豆”)和更新存储标记的text[]列来手动刷新数据库中的tags列。然后,我可以通过执行@>tags查询匹配项,或者通过select distincent unnest(tags)from documents获取所有标记的列表。

create materialized view hashtags
with taglist as (
  select documents.id, 
  jsonb_array_elements(rich_text->'ops') as ops from documents
) 
select 
  taglist.id,
  ops->'insert'->'hashtag'
from taglist 
where ops->'insert'->'hashtag' is not null;

其他建议,如高效索引此列的方法(它是一个jsonb元素,具有单个顶级键“ops”,其值始终是一个对象数组,以“insert”作为顶级键,可以有文本或进一步的对象值,也可以有一个“attributes”顶级键的兄弟“insert”),是受欢迎的。

我的目标是将“这个文档中有什么哈希标签”、“一般有什么哈希标签”和“用土豆标记了什么文档”查询的计算移到SQL中,而不是使用我目前使用的非ormalized技术(它同样是:函数,但有点不令人满意,因为这意味着我必须维护这个额外的列,可以想象数据进入未定义的状态,就像以某种方式直接编辑了标记列,或者更新了rich_text字段而不重新计算标记列一样)。

共有1个答案

高兴贤
2023-03-14

您可以创建一个“懒惰的”或“渴望的”物化视图。阅读这篇关于它们的文章:物化视图策略

 类似资料:
  • 我正在探索物化视图来创建非规范化视图,以避免为了提高读取性能而连接多个表。API将从物化视图中读取数据,以向客户端提供数据。 我正在使用亚马逊aurora postgres(版本11)。 我在物化视图(MV)上使用一个唯一的索引,这样我就可以使用“并发刷新”选项。 不过我注意到的是,当只有一小部分行在其中一个源表中更新,我尝试刷新视图时,它非常慢。事实上比第一次填充视图慢。例如:要填充MV第一次需

  • 问题内容: 出于优化目的,我使用实例化视图来定期刷新它,我设置了一个cron作业,在我的情况下,每三个小时运行一次周期t。我的问题是: 刷新实例化视图的最佳方法是什么? 如果使用cron作业刷新实例化视图会出现什么问题? 我遇到了一个Postgres插件,可以安排工作链接 问题答案: 最好的方法是定期执行执行任务的脚本: 脚本是: 并在crontab中添加一个条目,例如:

  • 我试图从Java程序中刷新Postgresql中的物化视图: 根据文档,execute()方法可以用于任何类型的SQL语句: 执行此PreparedStatement对象中的SQL语句,该语句可能是任何类型的SQL语句。 注意:我不需要在程序的这一部分了解结果,因此返回值并不重要。 执行此PreparedStatement对象中的SQL语句,该语句必须是SQL数据操作语言(DML)语句,如INSE

  • 问题内容: 我想刷新一个列表视图。当我从另一个类获取值时,我希望它将其更新为列表视图。我正在创建用于刷新列表的线程,但出现异常: 如何进行? 问题答案: 无需尝试刷新视图以更新列表,只需采用Adapter对象并调用notifyDataSetChanged()API。

  • 使用WAMP在Windows 7上工作。 更改视图代码不会反映在浏览器中。 我试过: > php工匠缓存:清除 php artisan视图:清除 作曲家杜普莫托洛德 删除了存储/框架/视图下的所有内容 重新启动计算机 在我的php中。ini操作缓存已禁用: opcache.enable=0 没有任何帮助,这是非常令人沮丧的。 我错过了什么?

  • 首先,我在这方面工作了一整天,但什么也做不到。我有一个,其适配器使用的。我尝试使用回调类实现: 下面是TouchHelper的初始化 我的适配器实现接口 链接 适配器类查看器类