vacuumdb
vacuumdb
— 清理和分析一个 
Postgres 数据库
语法
vacuumdb [ options ] [ --analyze | -z ]
    [ --alldb | -a ] [ --verbose | -v ]
    [ --table 'table [ ( column [,...] ) ]' ] [ [-d] dbname ]
输入
vacuumdb 接受下列命令行参数:
 
- 
-d dbname, --dbname dbname
 
- 
声明要被清理或分析的数据库名称。
 
- 
-z, --analyze
 
- 
计算用于优化器的该数据库的统计值。
 
- 
-a, --alldb
 
- 
清理所有数据库。
 
- 
-v, --verbose
 
- 
在处理过程中打印详细信息。
 
- 
-t table [ (column [,...]) ], --table table
[ (column [,...]) ]
 
- 
只是清理或分析 table。列名称只是在与--analyze
选项联合使用时才需要声明。
 
 
小技巧:如果你声明了要清理的列,你可能不得不在
shell 上转意圆括号。
 
 
vacuumdb 还接受下面的命令行参数用于联接参数:
 
- 
-h host, --host host
 
- 
声明 postmaster 运行的机器的主机名.
 
- 
-p port, --port port
 
- 
声明 postmaster 在侦听联接的TCP/IP
端口号或一个本地的Unix主控套接字文件句柄.
 
 
- 
-U username, --username username
 
- 
进行联接的用户名。
 
- 
-W, --password
 
- 
强制口令提示符。
 
- 
-e, --echo
 
- 
回显 vacuumdb 生成的查询并且把它发送到后端。
 
- 
-q, --quiet
 
 
 
不显示响应。
输出
- 
VACUUM
 
 
- 
一切正常。
 
- 
vacuumdb: Vacuum failed.
 
 
 
出差错了。vacuumdb 只是一个脚本的封装。参阅
VACUUM 和 psql
获取关于错误信息和可能问题的详细描述。
 
 
 
描述
vacuumdb 是一个用于整理 
PostgreSQL
数据库的工具。
vacuumdb 还将会生成用于 
Postgres
查询优化器的内部统计数据。
vacuumdb 是一个 shell 脚本,通过 PostgreSQL
交互终端 psql 封装了SQL
命令 VACUUM 。因此,用那种方法清理数据库都没什么特别的。这意味着psql
必须能被脚本找到并且有一个数据库服务器在目标主机上运行。同样,任何psql
和 libpq 前端库可获得的缺省设置和环境变量都将生效。
 
用法
整理数据库 
test:
$ vacuumdb test
为优化器分析一个名为 
bigdb 的数据库:
$ vacuumdb --analyze bigdb
为优化器分析数据库 
xyzzy 里表 
foo 里面的列 
bar:
$ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy