暂无图片
pg会自动analyze吗
我来答
分享
暂无图片 匿名用户
pg会自动analyze吗

pg会自动analyze吗

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
Murkey


  • autovacuum_analyze_threshold:设置在一张表上触发analyze操作的最小更新或删除元组数,默认50
  • autovacuum_analyze_scale_factor:设置在一张表上触发analyze操作的最小变更百分比,默认0.1(表有10%的变动),可以设置系统级参数,也可以为每张表设置独立值。

何时发生auto analyze?  
   假设A为update的tuples计数值,B 为delete的tuples计数值 ,C为insert的tuples的计数值 .那么
   (A+B+C)>(0.1*tuples+50)时,将会发生自动autoanalyze。
   网易的德哥有篇文章how many tuples updated and or deleted will trigger auto vacuum or analyze非常厉害,实验证明了这个公式。根据这个公式,可以很清楚的知道,数据表比较小的时候,auto anaylze会比较频繁,数据表越大,0.1×tuples的值就越大,就越难trigger auto analyze。当然,这个参数是可以配置的,具体配置成多少,自己根据业务需要配置。对于我们公司的产品,数据库的autovacuum_analyze_scale_factor默认配置成0.1是不合适的,具体原因是业务层面的东西,我就不多唧唧歪歪了。
   如何获取某用户表的何时进行的analyze呢?pg_stat_user_tables中有个字段叫last_autoanalyze,当然还有字段叫last_analyze,记录的是上一次手动ANALYZE的时间。

暂无图片 评论
暂无图片 有用 0
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏