vacuum 数据库 用法_[数据库学习]第二章SQL命令参考-VACUUM

VACUUM

Garbage-collectsand optionally analyzes a database.

概要

VACUUM[FULL] [FREEZE] [VERBOSE] [table]

VACUUM[FULL] [FREEZE] [VERBOSE] ANALYZE

[table[(column [, ...] )]]

描述

vacuum回收已删除的元组占用的存储。Greenplum在日常数据操作中,更新或删除的数据并没有从物理表中删除,数据仍然存在于磁盘上,直到vacuum操作完成。因此,有必要定期做vacuum,尤其是在频繁更新的表。

在没有参数的情况下,vacuum处理当前数据库中的每个表格。有了参数,vacuum只处理那张表。

VACUUMANALYZE

对每个表先执行vacuum,然后执行analyze。这对于日常维护脚本一个方便的组合形式。请参阅分析有关其处理的更多细节。

vacuum(无FULL)只能标记那些空间是在表的末端的空间以备将来重复使用表和索引数据和回收空间再利用,获得的所是表排它锁。在表的开始或中间的未使用空间仍保持原样。对于堆表,这种形式的命令都可以在正常的读取和表写入并行操作,因为没有获得独占锁。

对于附加优化表,vacuum首先压缩索引,再依次压缩每个段文件,最后对辅助关系进行vacuum,并更新统计事实表。在每个环节,有效行从当前段文件复制到一个新的段文件,然后当前的段文件被放入待删除队列进行删除,并将新的段文件置为可用。追加优化表中的空vacuum允许扫描,插入,删除,和表中的更新,与此同时一个分段的文件被压缩。

你可能感兴趣的:(vacuum,数据库,用法)