PHP实战中知识总结 / PgSQL - vacuumdb(bin目录文件)

一、vacuumdb

vacuumdb是对一个PostgreSQL数据库进行垃圾收集和分析。vacuumdb也将产生由PostgreSQL查询优化器所使用的内部统计信息。vaccumdb是对vaccum命令的封装。

二、命令格式

vacuumdb [connection-option...] [option...] [ --table | -t table [( column [,...] )] ] ... [dbname]
vacuumdb [connection-option...] [option...] --all | -a

1、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显示帮助信息

2、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列

PHP实战中知识总结