ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
       vacuumdb是对一个PostgreSQL数据库进行垃圾收集和分析。vacuumdb也将产生由PostgreSQL查询优化器所使用的内部统计信息。vaccumdb是对vaccum命令的封装。 **命令格式:** * vacuumdb [connection-option...] [option...] [ --table | -t table [( column [,...] )] ] ... [dbname] * vacuumdb [connection-option...] [option...] --all | -a > **option:** > * **-a, --all** :对所有数据库进行垃圾回收 > * **-d, --dbname=DBNAME** :指定数据库进行垃圾回收 ,如果未指定,则从环境变量`PGDATABASE`中读取数据库名称。 如果环境变量也没有设置,指定给该连接的用户名将用作数据库名 > * **--disable-page-skipping** :禁用所有页面跳过行为 > * **-e, --echo** :显示发送到服务器的命令 > * **-f, --full**:全量清理 > * **-F, --freeze**:冻结行事务信息 > * **-j, --jobs=NUM** :使用指定数量的并发连接来执行垃圾回收 **--min-mxid-age=MXID_AGE**:仅在multixact ID 年龄至少为*`mxid_age`*的表上执行清空或分析命令。 此设置对于确定要处理的表的优先级比较有用,以防止multixact ID 回绕 **--min-xid-age=XID_AGE** :仅在事务ID 年龄至少为*`xid_age`*的表上执行清空或分析命令。 此设置对于确定要处理的表的优先级比较有用,以防止事务ID 回绕 > * **-P, --parallel=PARALLEL_DEGREE**:指定`parallel vacuum`的平行度。这允许清理利用多个 CPU 来处理索引 > * **-q, --quiet** :不显示进度消息 >* **--skip-locked**:跳过无法立即锁定以进行处理的关系 > * **-t, --table='TABLE[(COLUMNS)]'** :只清理或分析*`table`*。列名只能和`--analyze`或`--analyze-only`选项一起被指定。通过写多个`-t`开关可以清理多个表 > * **-v, --verbose**:在处理期间打印详细信息 > * **-V, --version** :打印vacuumdb版本并退出 > * **-z, --analyze** :更新优化器统计信息 > * **-Z, --analyze-only** :只更新优化器统计信息而不清理 **--analyze-in-stages** :与`--analyze-only`相似,只计算优化器使用的统计信息(不做清理)。 使用不同的配置设置运行分析的几个(目前是 3个)阶段以更快地产生可用的统计信息 >* **-?, --help**:显示帮助信息 > > **Connection options:** >* **-h, --host=HOSTNAME**:指定运行服务器的机器的主机名。 >* **-p, --port=PORT** :指定端口 >* **-U, --username=USERNAME**:指定用户 >* **-w, --no-password** :不提示输入密码 >* **-W, --password** :强制密码提示 >* **--maintenance-db=DBNAME**:当使用`-a`/`--all`时,指定要连接到的数据库名称以发现应该清理的数据库。 如果未指定,将使用`postgres`数据库,如果不存在,将使用`template1` | 命令实例 | 解释 | | --- | --- | | vacuumdb test | 对test数据库进行垃圾清理 | | vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy | 要清理在名为`xyzzy`的数据库中的一个表`foo`,并且为优化器分析该表的`bar`列 |