可以使用 onstat -g shard 命令显示有关分片高速缓存的信息。
cdr define shardCollection collection_1 database_1:josh.customers_1
--type=delete --key=column_2 --strategy=hash --versionCol=column_3
g_shard_server_A
g_shard_server_B
g_shard_server_C
g_shard_server_D
以下示例显示了当 onstat -g shard 命令在 g_shard_server_A 、g_shard_server_B 、g_shard_server_C 或 g_shard_server_D 上运行的输出。
图: 使用哈希算法将数据分布到多个数据库服务器的分片定义的 onstat -g shard 命令的输出。
GBase 8s Database Server Version 8.5 -- On-Line -- Up 00:00:20 -- 162316 Kbytes
collection_1 database_1:josh.customers_1 key:column_2 HASH:DELETE SHARD OPTIMIZATION:ENABLED
Matching for delete:column_3
g_shard_server_A (65545) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) = 0
g_shard_server_B (65546) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) in (1, -1)
g_shard_server_C (65547) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) in (2, -2)
g_shard_server_D (65548) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) in (3, -3)
mod(ifx_checksum(col2::LVARCHAR,0),4)=0
cdr define shardCollection collection_2 database_2:john.customers_2
--type=keep --key=state --strategy=expression --versionCol=version_column
g_shard_server_F "IN ('AL','MS','GA')"
g_shard_server_G "IN ('TX','OK','NM')"
g_shard_server_H "IN ('NY','NJ')"
g_shard_server_I REMAINDER
以下示例显示了运行在 g_shard_server_F 、g_shard_server_G 、g_shard_server_H 或 g_shard_server_I 上的 onstat -g shard 命令的输出。
图: 使用一个表达式将数据分布到多个数据库服务器的分片定义的 onstat -g shard 命令的输出。
GBase 8s Database Server Version 8.5.U -- On-Line -- Up 00:19:07 -- 162316 Kbytes
collection_2 database_2:john.customers_2 key:state EXPRESSION:KEEP SHARD OPTIMIZATION:ENABLED
Matching for delete:version_column
g_shard_server_F (65564) state IN ('AL','MS','GA')
g_shard_server_G (65565) state IN ('TX','OK','NM')
g_shard_server_H (65566) state IN ('NY','NJ')
g_shard_server_I (65567) not ((state IN ('AL','MS','GA')) or (state IN('TX','OK','NM'))
or (state IN ('NY','NJ')))
state in ('AL','MS','GA')
not ((state in ('AL','MS','GA'))
or (state in ('TX','OK','NM'))
or (state in ('NY','NJ')))
cdr define shardCollection collection_3 database_3:susan.customers_3
-t delete -k bson_value_lvarchar(data,'age') -s expression -v version
g_shard_server_J "BETWEEN 0 and 20"
g_shard_server_K "BETWEEN 21 and 62"
g_shard_server_L "BETWEEN 63 and 100"
g_shard_server_M REMAINDER
以下示例显示运行在 shard_server_J 、shard_server_K 、shard_server_L 或 shard_server_M 上的 onstat -g shard 命令的输出。
图: 使用 BSON 分片键和表达式将数据分布到多个数据库服务器的分片定义的 onstat -g shard 的命令的输出。
GBase 8s Database Server Version 8.5 -- On-Line -- Up 01:34:01 -- 354721 Kbytes
collection_3 database_3:susan.customers_3 key:bson_value_lvarchar(data,'age')
EXPRESSION:DELETE SHARD OPTIMIZATION:ENABLED
Matching for delete:version
g_shard_server_J (65568) bson_value_lvarchar(data,'age') BETWEEN 0 and 20"
g_shard_server_K (65569) bson_value_lvarchar(data,'age') BETWEEN 21 and 62"
g_shard_server_L (65570) bson_value_lvarchar(data,'age')BETWEEN 63 and 100"
g_shard_server_M (65571) not((bson_value_lvarchar(data,'age') BETWEEN 0 and 20)
or (bson_value_lvarchar(data,'age') BETWEEN 21 and 62) or (bson_value_lvarchar
(data,'age') BETWEEN 63 and 100))
bson_value_lvarchar(data,'age') BETWEEN 0 and 20
not((bson_value_lvarchar(data,'age') BETWEEN 0 and 20)
or (bson_value_lvarchar(data,'age') BETWEEN 21 and 62)
or (bson_value_lvarchar(data,'age') BETWEEN 63 and 100))