GBase 8c 教程(十六)VACUUM指令

GBase 8c数据库需要周期性的清理维护以达到最优的性能,清理维护工作可以通过自动清理守护进程或手动管理VACUUM命令来进行。

一、VACUUM命令基础

建议使用VACUUM命令定期对GBase 8c数据库的表进行清理,主要有以下几个原因:

  1. 恢复或重用被已更新或已删除行所占用的磁盘空间;
  2. 更新被查询规划器使用的数据统计信息;
  3. 更新可见性映射,它可以加速只用索引的扫描;
  4. 保护老旧数据不会由于事务ID回卷或多事务ID回卷而丢失。

VACUUM回收表或B-Tree索引中已经删除的行所占据的存储空间。

为了保证MVCC对旧版本数据的可见性,GBase 8c数据库在对数据进行UPDATA或DELETE操作后不会立即删除该行的旧版本。在所有事务都不再需要旧版本数据时,需要运行VACUUM命令回收被占用的空间,避免磁盘空间无限制增长。在Coordinator节点和Datanode节点上都应该做此操作。


VACUUM命令语法:

用法1 :VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE | DISABLE_PAGE_SKIPPING } [, …] ) ] [ table_name [ (column_name [, …] ) ] ]

用法2:VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table_name ]

用法3:VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table_name [ (column_name [, …] ) ] ]


在不带参数的情况下,VACUUM会处理当前用户有权限清理的当前数据库

你可能感兴趣的:(GBase,8c,数据库,database)