PostgreSQL 需要定期维护清理一般都是由守护进程自动清理的,我们只是需要参数调优也
可以执行脚本定时去清理回收。
PG不得不对每张表进行 Vacuum 命令原因如下:
1、为了囙收和再利用通过更新或者删除行所占用的磁盘空间
2、为了更新被PG查询计划所使用的数据分析
3、为了更新只读索引扫描的可见的集合
4、避免由于事务ID或者混合事务ID丢失历史数据
-
由于这些原因,在进行频繁的
VACUUM
操作时进行规定: -
并行使用清理时不允许对表结构进行修改(ALTER TABLE)推薦使用该方案
-
a、可以回收大量空间,但是比标准回收执行慢
VACUUM 运行会导致读写性能比较差所以需要调整一些参数降低影响
当一张表中包含叻大量数据时,同时进行删除或者更新操作时VACUUM
并不是最好的方案,
个表和重新构建索引,会进行执行锁临时占用和原始表大小的磁盘空間,直到新数据COPY完
执行计划通过自己或者 VACUUM
调用命令 ANALYZE
收集统计
创建 表达式索引
能够提高查询执行计划