加速PG中vacuum

一旦VACUUM进程发起后,VACUUM大表能加速吗?

简而言之,一旦vacuum开始工作,就不可能影响它的速度。主要原因是,这个进程大部分资源用于磁盘操作,这些操作速度不是太快。此外,仍然要为常规数据库进程留有足够的资源。考虑到这一点,改变一些系统参数可以允许单独的VACUUM工作进程加快其性能。

为此,需要配置相当“激进”的配置。这样VACUUM进程可以更加频繁发起,但随着每次启动,这些进程需要更少操作,从而减少总体工作时间。

下面是AUTOVACUUM参数的配置:

1)配置合适的autovacumm_max_workers(默认值3,这个值较低,因此10左右比较合适)

2)增加AUTOVACUUM检查发起的频率(autovacuum_naptime=1s,默认值是1分钟)

3)降低自动触发AUTOVACUUM发起的阈值。(autovacuum_vacuum_threshold=50

,autovacuum_analyze_threshold=10,autovacuum_vacuum_scale_factor=0.05,

autovacuum_analyze_scale_factor=0.05)

4)降低触发FREEZE的阈值(autovacuum_freeze_min_age=5000000, vacuum_freeze_table_age=15000000)

autovacuum_max_workers需要服务重启后生效,其他参数不需要。使用上述参数将增加AUTOVACUUM访问表的频率,同时将工作分解为更小部分。从而VACUUM将需要降低的工作量份额,并反过来加快整体命令的执行。

另外,一个更加“激进”的参数值可用于VACUUM命令(vacuum_cost_delay=0, vacuum_cost_page_hit=0, vacuum_cost_page_miss=1, vacuum_cost_page_dirty=10, vacuum_cost_limit=100)。这允许VACUUM利用更多资源,而牺牲其他服务进程,并降低了服务工作负载之间的暂停限制。

原文

https://dataegret.com/2022/01/accelerating-vacuum-in-postgres/

加速PG中vacuum相关推荐

  1. PG中的几种数据类型转换方式

    PG中的几种数据类型转换方式 1.通过格式化函数进行转换 函数 返回类型 描述 示例 to_char(timestamp,text) text 把时间戳转换成字符串 to_char(current_t ...

  2. PostgreSQL pg中的截取补齐lpad函数怎么用?

    PostgreSQL pg中的截取补齐lpad函数怎么用? 1 左边填充,右边截取 PostgreSQL中的lpad()函数有两个功能: 如果长度不够指定的长度,就在左边填充字符串 如果长度超出了指定 ...

  3. 【PostgreSQL】PG中日期格式化与Java中的区别

    一.常用对比(年-月-日 时:分:秒) PG中 Java中 TO_CHAR(current_timestamp, 'yyyy-MM-dd HH24:mi:ss') LocalDateTime.now( ...

  4. pg中的数字类型总结

    pg中的数字类型如下表: 名字 存储尺寸 描述 范围 smallint 2字节 小范围整数 -32768 to +32767 integer 4字节 整数的典型选择 -2147483648 to +2 ...

  5. PostgreSQL pg中 lpad函数使用

    PostgreSQL pg中 lpad函数使用 PostgreSQL中的lpad()函数有两个功能:1,如果长度不够指定的长度,就在左边填充字符串,2,如果长度超出了指定的长度,就把右边截掉. 语法格 ...

  6. 如何使用并行计算来加速并行计算中的分布式计算优化?

    文章目录 如何使用并行计算来加速并行计算中的分布式计算优化? 1. 引言 2. 技术原理及概念 2.1. 基本概念解释 2.2. 技术原理介绍:算法原理,操作步骤,数学公式等 2.3. 相关技术比较 ...

  7. pg 中字符串中有特殊字符

    pg 中字符串中有特殊字符的处理(比如换行符) imos=# SELECT replace('he\no',E'\n','L');replace ---------he\no (1 row)imos= ...

  8. postgresql源码学习(57)—— pg中的四种动态库加载方法

    一. 基础知识 1. 什么是库 库其实就是一些通用代码,可以在程序中重复使用,比如一些数学函数,可以不需要自己编写,直接调用相关函数即可实现,避免重复造轮子. 在linux中,支持两种类型的库: 1. ...

  9. ffmpeg 分辨率 压缩_用GPU加速FFmpeg中的超分辨率功能

    1. 简要回顾 首先简单复述一下FFmpeg中对深度学习的支持情况,如上图所示,FFmpeg在libavfilter中支持基于深度学习的filter,目前已经支持sr, derain和dnn_proc ...

最新文章

  1. PHP中self和static的区别,php中self与static的区别
  2. Linux Shell高级技巧(目录)
  3. 代码模拟实现十六进制转二进制
  4. jenkins 下载插件 一直失败_Jenkins. 安装错误: No such plugin: cloudbees-folder
  5. VTK:Utilities之CardinalSpline
  6. 和QT零距离接触的意义是什么
  7. 数据:BTC全网算力为134.17 EH/s,新增地址数51.05万
  8. REHL 6 安装指南
  9. HDU6608 Fansblog【Miller_Rabin素性测试算法+威尔逊定理】
  10. c+ 引用传递坑_了解C ++中的引用传递
  11. 纠结的链接——ln、ln -s、fs.symlink、require
  12. 牛逼!IDEA不愧为神器,结合Groovy脚本,简直天下无敌!
  13. 通过代码自定义cell
  14. 可曾听闻【大话】二字
  15. 【爬虫】从地理空间数据云上批量下载遥感影像
  16. shader拖尾_拖尾效果 - LouisSong - 博客园
  17. arcgis标注转为注记后,如何批量修改注记及牵引线颜色
  18. 达内学软件测试发证书吗,达内软件测试培训让我拥有了实际工作经验
  19. 从模拟切换到真实业务接管,看zCloud如何助力银行灾备演练升级
  20. java 垃圾收集器_JVM垃圾收集器详解

热门文章

  1. 2018年世界杯冠军竟然被大数据算出来了,还要比吗?
  2. 2019CSP初赛基础知识整理
  3. iOS 录制视频MOV格式转MP4
  4. 谷歌浏览器打包扩展程序(记录扩展程序根目录)
  5. Lumen企业站内容管理实战 - 网站配置
  6. 等保(公安部82号令)
  7. php开源混合模式吗,CSS3混合模式使用详解
  8. Matlab 基于局部三角网的曲面重建
  9. 什么是 Adobe AIR
  10. 你真的理解了const和volatile关键字么?(我看不一定)