clusterdb

重新群集之前用CLUSTER群集过的表。

概要

  1. clusterdb [connection-option ...] [--verbose | -v] [--table | -t table] [[--dbname | -d] dbname]
  2. clusterdb [connection-option ...] [--all | -a] [--verbose | -v]
  3. clusterdb -? | --help
  4. 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:

  1. clusterdb test

在名为xyzzy的数据库中群集单个表foo:

  1. clusterdb --table foo xyzzyb

另见

CLUSTER