PG Auto Vacuum 学习与性能调优

1.PG后台进程,用于自动清理块中的垃圾

可以设置开启或关闭,默认是开启,生产环境建议开启。

2.什么时候在表上做autovacuum?

autovacuum实际做两件事:

(1)空间整理-vacuum

(2)分析-analyze

触发autovacuum条件:

3.autovacuum的问题

表1:共100行,其触发分析和vacuum的阈值分别是:60.70.

表2:共100万行其触发分析和vacuum的阈值分别是:100000和200000

两张表触发autovacuum的条件相差过大

autovacuum setting的设置:

下面是全局配置:

4.autovacuum_max_workers(一次可以运行多少个autovacuum进程)--默认是3

5.autovacuum_naptime=1min(启动下一个autovacuum之前二点等待时间)--(autovacuum_naptime/N) 其中N是实例中数据块的总数

6.数据库发生震荡的原因与autovacuum的关系:

1.autovacuum可以看作是一种清洁工作

2.是一个IO密集型操作

简单来说就是autovacuum默认每一分钟进行一次,IO非常密集,导致数据库性能变差,清理完毕之后,数据库性能又变好了,所以叫做数据库震荡。

解决:设置了一些参数来最小化真空对IO的影响:

实例:

1.创建实验用例:直接向表中快速插入100000条数据库

2.分析导致analyze的阈值:10050

3.更新数据,达到触发analyze的阈值:

4.查看分析情况

更新了10048触发了自动分析。

但没有触发autovacuum。

5.再更新一万条数据

6.再次分析情况

此时更新了20048行,

此时仍没有达到阈值,没有做autovacuum。

7.再次更新

8.查看分析情况

可以看到触发了autovacuum,垃圾数据被自动清理了。

也可以看到n_dead_tup清0了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值