CREATE SHARDING TABLE RULE
tableDefinition
is defined for standard sharding table rule;autoTableDefinition
is defined for auto sharding table rule. For standard sharding rules and auto sharding rule, refer to ;- use standard sharding table rule:
DATANODES
can only use resources that have been added to the current database, and can only use INLINE expressions to specify required resources;DATABASE_STRATEGY
,TABLE_STRATEGY
are the database sharding strategy and the table sharding strategy, which are optional, and the default strategy is used when not configured;- The attribute
TYPE
instrategyDefinition
is used to specify the type of Sharding Algorithm, currently only supportsSTANDARD
,COMPLEX
. UsingCOMPLEX
requires specifying multiple sharding columns withSHARDING_COLUMNS
.
- use auto sharding table rule:
RESOURCES
can only use resources that have been added to the current database, and the required resources can be specified by enumeration or INLINE expression;- Only auto sharding algorithm can be used, please refer to .
algorithmType
is the sharding algorithm type, please refer to Sharding Algorithm;- The auto-generated algorithm naming rule is
tableName
_strategyType
_shardingAlgorithmType
; KEY_GENERATE_STRATEGY
is used to specify the primary key generation strategy, which is optional. For the primary key generation strategy, please refer to .AUDIT_STRATEGY
is used to specify the sharding audit strategy, which is optional. For the sharding audit generation strategy, please refer to Sharding Audit.
1.Standard sharding table rule
Create standard sharding table rule by specifying sharding algorithms
-- create sharding algorithms
CREATE SHARDING ALGORITHM database_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 2}"))
), table_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 2}"))
-- create a sharding rule by specifying sharding algorithms
CREATE SHARDING TABLE RULE t_order (
DATANODES("ds_${0..1}.t_order_${0..1}"),
DATABASE_STRATEGY(TYPE="standard", SHARDING_COLUMN=user_id, SHARDING_ALGORITHM=database_inline),
TABLE_STRATEGY(TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=table_inline)
);
Use the default sharding database strategy, create standard sharding table rule by specifying a sharding algorithm
Use both the default sharding and the default sharding strategy, create standard sharding table rule
-- create sharding algorithms
CREATE SHARDING ALGORITHM database_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 2}"))
), table_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 2}"))
-- create a default sharding database strategy
CREATE DEFAULT SHARDING DATABASE STRATEGY (
TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=database_inline
);
-- create a default sharding table strategy
CREATE DEFAULT SHARDING TABLE STRATEGY (
TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=table_inline
);
-- create a sharding table rule
DATANODES("ds_${0..1}.t_order_${0..1}")
);
2.Auto sharding table rule
CREATE SHARDING TABLE RULE t_order (
RESOURCES(ds_0, ds_1),
SHARDING_COLUMN=order_id, TYPE(NAME="MOD", PROPERTIES("sharding-count"="4"))
);
CREATE
, SHARDING
, TABLE
, RULE
, DATANODES
, DATABASE_STRATEGY
, TABLE_STRATEGY
, KEY_GENERATE_STRATEGY
, RESOURCES
, SHARDING_COLUMN
, TYPE
, SHARDING_COLUMN
, KEY_GENERATOR
, SHARDING_ALGORITHM
, COLUMN
, NAME
, PROPERTIES
, AUDIT_STRATEGY
, AUDITORS
,