返回首页

gbase数据、南大通用产品文档:GBase8sstoragepool modify 参数:更改存储池条目(SQL 管理 API)

更新日期:2024年09月11日

....................
- 805 -

语法格式
CREATE INDEX index_name ON [vc_name.][database_name.]table_name(col
umn_name) [key_block_size = size_value] [key_dc_size=num] USING HASH
GLOBAL;
表5- 72 参数说明
参数名称


index_name
索引名。
vc_name
vc 名,可选项。
database_name
数据库名。可省略,省略时,必须首先使用USE 命令,指定
当前数据库。
column_name
创建索引的列名。
GLOBAL
索引类型,可省略,省略时默认创建GLOBAL 哈希索引。
key_dc_size=num
多少个数据包(DataCell)创建一个hash 索引。指定该参数

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
998
参数名称


时,表示创建的是分段哈希索引。
key_block_size
=
size_value
指定每个数据块的大小。Size_value 最小值4096,最大值
32768,size_value 必须是4096 的整数倍。
说明

二进制类型的列不适合使用HASH INDEX,或者该列数据量较大,
但DISTINCT 值较少时,也不适合使用HASH INDEX。

同一表上不能创建相同名称的哈希索引,
同一表的同一列上能且只
能创建一个哈希索引,任何GBase 8a MPP Cluster 支持的数据类型
的列上都可以创建哈希索引。

创建哈希索引后,基于索引列的等值查询的性能会提高,尤其是表
中的数据量非常大的情况,在小数据量的情况下,哈希索引对性能
的提升效果不明显。
示例
示例1:创建默认哈希索引。
gbase> CREATE TABLE t1(a int,b varchar(10));
Query OK, 0 rows affected
gbase> CREATE INDEX idx1 on t1(a) ;
Query OK, 0 rows affected
Records: 0
Duplicates: 0
Warnings: 0
gbase> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL,
KEY "idx1" ("a") USING HASH GLOBAL
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例2:创建GLOBAL 哈希索引,设置key_dc_size 值为1000;

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
999
gbase> CREATE TABLE t (a INT);
Query OK, 0 rows affected
gbase> CREATE INDEX idx_t_a ON t(a) key_DC_size = 1000 USING HASH
GLOBAL;
Query OK, 0 rows affected
Records: 0
Duplicates: 0
Warnings: 0
gbase> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE "t" (
"a" int(11) DEFAULT NULL,
KEY "idx_t_a" ("a") KEY_DC_SIZE=1000 USING HASH GLOBAL
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例3:创建GLOBAL 哈希索引,设置key_block_size 值为16384。
gbase> CREATE TABLE t3(a int,b varchar(10));
Query OK, 0 rows affected
gbase> CREATE INDEX idx3 on t3(b) key_block_size=16384 USING HASH
GLOBAL;
Query OK, 0 rows affected
Records: 0
Duplicates: 0
Warnings: 0
gbase> SHOW CREATE TABLE t3\G
*************************** 1. row ***************************
Table: t3
Create Table: CREATE TABLE "t3" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL,
KEY "idx3" ("b") KEY_BLOCK_SIZE=16384 USING HASH GLOBAL
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)

GBase 8a MPP Cluster 产品支持负载均衡策略。有三个层面的支持能力:
1.
客户应用向集群建立连接阶段,自动选取当前负载最小的节点进行连接。

ADO.NET:
String _ConnString =
“server=192.168.0.2;failover=true;iplist=192.168.0.3;192.168.0.4;gclusterid=g1”

C API:
Host=” 192.168.1.1; 192.168.1.2”

JDBC:
String URL=”jdbc:gbase://192.168.1.56/test?user=gbase&password=******&failoverEnable
=true&hostList=192.168.1.57, 192.168.1.58&gcluster=gcl1”

ODBC:
“DRIVER=GBase 8a MPP Cluster ODBC 8.3 Driver;UID=gbase;PWD=******;”
“SERVER={192.168.111.96; 192.168.5.212; 192.168.7.174; 192.168.7.173};”
“CONNECTION_BALANCE=1;GCLUSTER_ID=gcluster;”
“CHECK_INTERVAL=90;”
2.
在数据分布策略上,支持均匀分布策略,使各节点数据量均匀。
3.
在SQL 执行分发策略上,
将请求分解到各个主机上并行执行,
使各个主机负
载接近一致。