ALTER 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
Alter standard sharding table rule to the specified sharding algorithms being altered
-- alter sharding algorithms
ALTER SHARDING ALGORITHM database_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 4}"))
), table_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 4}"))
-- alter a sharding rule to the specified sharding algorithms being altered
ALTER SHARDING TABLE RULE t_order (
DATANODES("resource_${0..3}.t_order_item${0..3}"),
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 altered default sharding database strategy, alter standard sharding table rule to the specified sharding algorithm being altered
Use both the altered default sharding and the altered default sharding strategy, alter standard sharding table rule
-- alter sharding algorithms
ALTER SHARDING ALGORITHM database_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 4}"))
), table_inline (
TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 4}"))
-- alter a default sharding database strategy
ALTER DEFAULT SHARDING DATABASE STRATEGY (
TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=database_inline
);
-- alter a default sharding table strategy
ALTER DEFAULT SHARDING TABLE STRATEGY (
TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=table_inline
);
-- alter a sharding table rule
DATANODES("resource_${0..3}.t_order_item${0..3}")
);
2.Auto sharding table rule
ALTER SHARDING TABLE RULE t_order (
RESOURCES(ds_0, ds_1),
SHARDING_COLUMN=order_id, TYPE(NAME="MOD", PROPERTIES("sharding-count"="4"))
);
ALTER
, 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
,