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 in strategyDefinition is used to specify the type of Sharding Algorithm, currently only supports STANDARD, COMPLEX. Using COMPLEX requires specifying multiple sharding columns with SHARDING_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
    1. -- create sharding algorithms
    2. CREATE SHARDING ALGORITHM database_inline (
    3. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 2}"))
    4. ), table_inline (
    5. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 2}"))
    6. -- create a sharding rule by specifying sharding algorithms
    7. CREATE SHARDING TABLE RULE t_order (
    8. DATANODES("ds_${0..1}.t_order_${0..1}"),
    9. DATABASE_STRATEGY(TYPE="standard", SHARDING_COLUMN=user_id, SHARDING_ALGORITHM=database_inline),
    10. TABLE_STRATEGY(TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=table_inline)
    11. );
    • 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
    1. -- create sharding algorithms
    2. CREATE SHARDING ALGORITHM database_inline (
    3. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 2}"))
    4. ), table_inline (
    5. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 2}"))
    6. -- create a default sharding database strategy
    7. CREATE DEFAULT SHARDING DATABASE STRATEGY (
    8. TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=database_inline
    9. );
    10. -- create a default sharding table strategy
    11. CREATE DEFAULT SHARDING TABLE STRATEGY (
    12. TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=table_inline
    13. );
    14. -- create a sharding table rule
    15. DATANODES("ds_${0..1}.t_order_${0..1}")
    16. );
    • Create standard sharding table rule and sharding algorithms at the same time

    2.Auto sharding table rule

    • create auto sharding table rule
    1. CREATE SHARDING TABLE RULE t_order (
    2. RESOURCES(ds_0, ds_1),
    3. SHARDING_COLUMN=order_id, TYPE(NAME="MOD", PROPERTIES("sharding-count"="4"))
    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,