PGSQL结合linux cron定期执行vacuum_full_analyze命令

VACUUM FULL ANALYZE 详解

一、核心功能

  1. 空间回收与重组

    • 完全重写表数据文件,将碎片化的存储空间合并并返还操作系统(普通 VACUUM 仅标记空间可重用)。
    • 彻底清理死元组(已删除或更新的旧数据行),解决因频繁增删改导致的存储膨胀问题。
  2. 统计信息更新

    • 同步执行 ANALYZE,收集最新的表数据分布统计信息(如列值基数、空值比例等),优化查询计划生成。

二、适用场景

  • 存储严重碎片化‌:当表因长期高频更新导致空间利用率低于 50% 时。
  • 事务 ID 接近回卷‌:预防因事务 ID 耗尽导致的数据库写入阻塞。
  • 大表性能骤降‌:查询计划因统计信息过期频繁选择低效路径

三、编写脚本

脚本内容:

bash 复制代码
#!/bin/bash
export PGPASSWORD='abX123ads'
psql -p 5431 -U postgres -d gx_szab_db -h 10.168.4.153 \
  -c "VACUUM FULL ANALYZE \"JJDB\";" >> /data/vacuum_full_analyze.log 2>&1
psql -p 5431 -U postgres -d gx_szab_db -h 10.168.4.153 \
  -c "VACUUM FULL ANALYZE t_gx_key_person;" >> /data/vacuum_full_analyze.log 2>&1

脚本位置:

配置cron表达式 每五分钟执行一次:

查看日志执行结果:

相关推荐
桦说编程1 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅3 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者3 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺3 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart5 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP6 小时前
MyBatis-mybatis入门与增删改查
java
孟陬9 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌9 小时前
一站式了解四种限流算法
java·后端·go
chlk1239 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统