PG的物化视图膨胀问题

0    83    1

Tags:

👉 本文共约2277个字,系统预计阅读时间或需9分钟。

序言

今天在②群有位筒子提了这样一个问题:

他这个已经超过了 10 行,也超过 50%,但是没有触发自动 vacuum?然后呢,我基于这个 t1 做了个物化视图,然后我发现每次刷新,物化视图查询都不会有死元组

但是生产环境中,物化视图就会有死元组,并且死元组有 200 多万,count(*) 的时候就 2 万多行,这样就需要频繁去 vacuum。那么物化视图他刷新的时候,会重新查询一次,不就拿最新的结果集了么?那怎么生产环境的物化视图会有死元组呢?

下来我也简单看了一下这块的逻辑,涨知识!什么情况下物化视图会导致膨胀?

分析

这个问题其实可以拆解为两个问题,第一个即为什么表没有触发 vacuum。这个问题老生常谈,默认的触发阈值是 autovacuum_vacuum_scale_factor * reltuples + autovacuum_vacuum_threshold,autovacuum_vacuum_threshold 默认值是 50,主要是为了预防小表频繁触发而设置的最低水位线,所以假如表增删改的数量超过了 20% ,就会触发 vacuum,当然实际情况还要取决于是否有空闲 worker,是否能获取到 ShareUpdateExclusiveLock 等等。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG的物化视图膨胀问题后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部