vacuum各种选项分析

1、vacuum和vacuum analyze和analyze的区别

我们加上verbose打印vacuum过程中的信息,可以发现:

  • vacuum analyze过程中不但会vacuum表,还会收集表的统计信息,同时还会在表的年龄超过vacuum_freeze_table_age时,将表的年龄降低到vacuum_freeze_min_age值;
  • 而vacuum只会vacuum表,也会在表的年龄超过vacuum_freeze_table_age时,将表的年龄降低到vacuum_freeze_min_age值;
  • analyze则只进行表分析

2、vacuum和vacuum freeze的区别

看详细的打印信息,好像vacuum和vacuum freeze差别不大,但实际vacuum freeze会把表的年龄将为0,不管之前年龄多大,即事务回卷;

而vacuum/autovacuum只会在表的年龄超过vacuum_freeze_table_age时,会进行freeze,但是会将表的年龄降低到vacuum_freeze_min_age值而非0(若表的年龄小于vacuum_freeze_table_age,不会触发freeze)

3、vacuum和vacuum full区别

(1)vacuum full 表会释放表文件对应的磁盘空间, 因为表对应的pg_class.relfilenode都变了(vacuum full实质上是重建了整个表,以达到空间合并的效果);

vacuum只是将删除状态的空间释放掉,转换到能够重新使用的状态,但是对于系统来说该数据块的空闲空间并没有反应到系统的元数据中,并不进行空间合并

(2)vacuum full, 就是除了vacuum, 还进行空间合并, 因此它需要lock table

(3)vacuum full 表的情况下, select没法查询表, select会被vacuum full堵塞

不管是vacuum vacuum analyze还是vacuum freeze,更别说vacuum full,都会产生wal日志,也会影响IO和业务,要在业务低峰期进行

还有autovacuum参数,主要关注autovacuum_analyze_scale_factor、autovacuum_vacuum_scale_factor、autovacuum_freeze_max_age、autovacuum_max_workers等,这次将不进行解释

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值