PostgreSQL 自动Vacuum配置方法

PostgreSQL的Vacuum由于以下原因需要定期执行。
 
释放,再利用因更新或者删除更新而占用的磁盘空间。
 
更新PostgreSQL 查询计划用的统计数据。
 
避免事务ID的重置而引起非常老的数据丢失。
 
VACUUM 的标准SQL文的执行和其他的对数据库的实际操作可以并行处理。
 
SELECT 、INSERT 、UPDATE 、DELETE 等命令和同通常一样继续能够执行。
 
但是,VACUUM处理中的时候, ALTER TABLE ADD COLUMN等等的命令不能够对表进行重新定义。
 
还有,由于执行VACUUM 的时候,有大量的I/O操作,其他的操作可能性能比较低,比如查询的反应非常慢。为了较少对性能的影响,可以通过参数来调整。
 
autovacuum (boolean ):
 
数据库服务器是否设置为自动vacuum。默认为 自动vacuum。 但是如果要让vacuum能够正常运转,必须使 track_counts 有效。 track_counts这个参数在 postgresql.conf配置文件内,或者通过命令来设置。
 
即使设置不是自动vacuum。系统发现有防止事务ID的重置的必要的时候也会自动启动
 
log_autovacuum_min_duration (integer ):
 
设置执行时间超过多长 的vacuum才输出log。时间单位毫秒。
 
如果这个参数设置为0的话,所有vacuum相关 的log都输出。
 
如果这个参数设置为-1的话,这个也是默认设置。log的输出无效,也就是所有vacuum相关 的log都不输出。
 
这个参数的设置可以修改postgresql.conf配置文件,也可以通过命令来设置。
 
autovacuum_max_workers (integer ):
 
设置能够同时执行的vacuum最大进程数。 默认是3个。
 
这个参数的设置可以修改postgresql.conf配置文件,也可以通过命令来设置。
 
autovacuum_naptime (integer ):
 
设置数据库执行vacuum的最小延迟。时间单位是分。默认是1分钟。这个参数的设置可以修改postgresql.conf配置文件,也可以通过命令来设置。
 
autovacuum_vacuum_threshold (integer ):
 
设置任何一张表内触发VACUUM 的 更新,删除tuple的最小数。默认为50。
 
这个参数的设置可以修改postgresql.conf配置文件,也可以通过命令来设置。这个设定通过 pg_autovacuum的项目可以覆盖每张表。
 
autovacuum_analyze_threshold (integer ):
 
设置任何一张表内触发ANALYZE 的更新,删除tuple的最小数。默认为50。
 
这个参数的设置可以修改postgresql.conf配置文件,也可以通过命令来设置。这个设定通过 pg_autovacuum的项目可以覆盖每张表。
 
autovacuum_vacuum_scale_factor (floating point ):
 
是否触发VACUUM的判断的时候 、设置 autovacuum_vacuum_threshold 追加的表容量断片。默认是0.2(即20%)。
 
这个参数的设置可以修改postgresql.conf配置文件,也可以通过命令来设置。这个设定通过 pg_autovacuum的项目可以覆盖每张表。
 
autovacuum_analyze_scale_factor (floating point ):
 
是否触发 ANALYZE 的判断的时候 、设置 autovacuum_vacuum_threshold 追加的表容量断片。默认是0.1(即10%)。
 
这个参数的设置可以修改postgresql.conf配置文件,也可以通过命令来设置。这个设定通过 pg_autovacuum的项目可以覆盖每张表。
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章