更新时间:2022-08-16 GMT+08:00
是否需要定时对常用的表做VACUUM FULL和ANALYZE操作?
需要。对于频繁增、删、改的表,需要定期做vacuum full和analyze,可回收已更新或已删除的数据所占据的磁盘空间,防止因数据膨胀和统计信息不准造成性能下降。
一般情况下,对表执行完大量增、改操作后,建议进行analyze;而在对表执行过删除操作后,建议进行vacuum,一般不建议日常使用vacuum full选项,但是可以在特殊情况下使用。例如在用户删除了一个表的大部分行之后,希望从物理上缩小该表以减少磁盘空间占用。vacuum full通常要比单纯的vacuum收缩更多的表尺寸。
语法格式
--指定某张表进行分析 ANALYZE 表名; --对数据库中的所有表(非外部表)进行分析。 ANALYZE; --指定某张表进行VACUUM VACUUM 表名; --指定某张表进行VACUUM FULL VACUUM FULL 表名;
更多语法参见《开发指南》的“VACUUM”和“ANALYZE | ANALYSE”章节。
如果执行VACUUM FULL命令后所占用物理空间无变化(未减少),请确认是否有其他活跃事务(删除数据事务开始之前开始的事务,并在VACUUM FULL执行前未结束)存在,如果有等其他活跃事务退出进行重试。
父主题: 数据库使用