clusterdb
clusterdb¶
重新群集之前用CLUSTER
群集过的表。
- 语法
-
``` bash 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
的封装。尽管SeaboxMPP数据库支持以这种方式对表进行群集,但是不建议这样做,因为CLUSTER
操作本身非常慢。如果确实需要以这种方式对表进行排序以提高查询性能, 请使用
CREATE TABLE AS
语句对磁盘上的表进行重新排序,而不要使用CLUSTER
。如果以这种方式"群集"表,那么clusterdb
将不相关。 - 选项
-
该命令参数说明见下
- -a | --all
- 群集所有数据库。
- [-d]
dbname
| [–dbname=]dbname
- 指定要群集的数据库的名称。 如果未指定,则从环境变量
SDDATABASE
读取数据库名称。 如果未设置,则使用为连接指定的用户名。 - -e | --echo
- 输出
clusterdb
生成并发送到服务器的命令。 - -q | --quiet
- 不显示响应。
- -t
table
| --table=table
- 仅群集命名表。可以通过编写多个
-t
开关来群集多个表。 - -v | --verbose
- 在处理过程中打印详细信息。
- -V | --version
- 打印
clusterdb
版本并退出。 - -? | --help
- 显示有关
clusterdb
命令行参数的帮助,然后退出。
以下选项均为连接选项,即连接SeaboxMPP数据库的相关信息:
- -h
host
| --host=host
- 运行SeaboxMPP coordinator数据库服务器的计算机的主机名。如果未指定,则从环境变量
SDHOST
读取或默认为localhost。 - -p
port
| --port=port
- SeaboxMPP coordinator数据库服务器正在侦听连接的TCP端口。 如果未指定,则从环境变量
SDPORT
读取或默认为3000。 - -U
username
| –username=username
- 要用作连接的数据库角色名称。 如果未指定,则从环境变量
SDUSER
读取或默认为当前系统角色名称。 - -w | --no-password
- 不发出密码提示。 如果服务器要求密码验证,而其他方式(例如
.sdpass
文件)无法使用密码,则连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中很有用。 - -W | --password
- 强制输入密码提示。
- --maintenance-db=
dbname
- 指定要连接以发现还应群集哪些其他数据库的数据库的名称。如果未指定,将使用
seaboxsql
数据库,如果不存在,将使用template1
。
- 示例
-
群集数据库
test
:clusterdb test
在名为
xyzzy
的数据库中群集单个表foo
:clusterdb --table foo xyzzyb
- 相关SQL命令
CLUSTER