clusterdb
重新群集之前用CLUSTER
群集过的表。
概要
clusterdb [connection-option ...] [--verbose | -v] [--table | -t table] [[--dbname | -d] dbname]
clusterdb [connection-option ...] [--all | -a] [--verbose | -v]
clusterdb -? | --help
clusterdb -V | --version
描述
对表进行群集意味着根据索引对磁盘上的表进行物理重新排序,以便索引扫描操作可以按某种顺序访问磁盘上的数据,从而提高使用该索引的查询的索引查找性能。
clusterdb
工具将在数据库中找到以前已使用CLUSTER
SQL命令进行群集的任何表,并将它们再次群集在最后使用的同一索引上。
从未群集过的表不受影响。
clusterdb
是SQL命令CLUSTER
的包装。
尽管Greenplum数据库支持以这种方式对表进行群集,但是不建议这样做,因为CLUSTER
操作本身非常慢。
如果确实需要以这种方式对表进行排序以提高查询性能,
请使用CREATE TABLE AS
语句对磁盘上的表进行重新排序,而不要使用CLUSTER
。
如果您以这种方式"群集"表,那么clusterdb
将不相关。
选项
-a | --all 群集所有数据库。 [-d] dbname | [--dbname=]dbname
指定要群集的数据库的名称。
如果未指定,则从环境变量PGDATABASE
读取数据库名称。
如果未设置,则使用为连接指定的用户名。
-e | --echo
输出clusterdb
生成并发送到服务器的命令。
-q | --quiet 不显示响应。 -t table | --table=table
仅群集命名表。可以通过编写多个-t
开关来群集多个表。
-v | --verbose
在处理过程中打印详细信息。
-V | --version
打印clusterdb
版本并退出。
-? | --help
显示有关clusterdb
命令行参数的帮助,然后退出。
连接选项
-h host | --host=host
运行Greenplum master数据库服务器的计算机的主机名。
如果未指定,则从环境变量PGHOST
读取或默认为localhost。
-p port | --port=port
Greenplum master数据库服务器正在侦听连接的TCP端口。
如果未指定,则从环境变量PGPORT
读取或默认为5432。
-U username | --username=username
要用作连接的数据库角色名称。
如果未指定,则从环境变量PGUSER
读取或默认为当前系统角色名称。
-w | --no-password
不发出密码提示。
如果服务器要求密码验证,而其他方式(例如.pgpass
文件)无法使用密码,则连接尝试将失败。
此选项在没有用户输入密码的批处理作业和脚本中很有用。
-W | --password 强制输入密码提示。 --maintenance-db=dbname
指定要连接以发现还应群集哪些其他数据库的数据库的名称。
如果未指定,将使用postgres
数据库,如果不存在,将使用template1
。
示例
群集数据库test
:
clusterdb test
在名为xyzzy
的数据库中群集单个表foo
:
clusterdb --table foo xyzzyb
另见
[CLUSTER](../../ref_guide/sql_commands/CLUSTER.html#topic1)