Vacuum简介


Autovacuum


PGServer每一分钟(autovacuum_naptime)检查一次是否需要进行vacuum。

如果需要进行,则发起三个(autovacuum_max_workers)worker进程。


如何判断是否需要进行vacuum?

如果

一个表的数据更改量达到了总数据量的20%(autovacuum_vacuum_scale_factor);

并且至少50行数据(autovacuum_vacuum_threshold);

则判断为需要进行vacuum。

在PG 13之前,如果一个表只有insert,不会触发autovacuum,但是从13开始,当插入超过1000(autovacuum_vacuum_insert_threshold)行,会触发vacuum。


对于优化统计信息收集来说,是相同的机制,

如果

一个表的数据更改量达到了总数据量的10%(autovacuum_analyze_scale_factor);

并且至少50行数据(autovacuum_analyze_threshold);

则判断为需要进行统计数据收集。


理想情况下,正常VACUUM操作同时也会收集新的统计信息。



  • No labels