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