rules:
- !SHARDING
tables: # 数据分片规则配置
<logic-table-name> (+): # 逻辑表名称
actualDataNodes (?): # 由数据源名 + 表名组成(参考Inline语法规则)
databaseStrategy (?): # 分库策略,缺省表示使用默认分库策略,以下的分片策略只能选其一
standard: # 用于单分片键的标准分片场景
shardingColumn: # 分片列名称
shardingAlgorithmName: # 分片算法名称
complex: # 用于多分片键的复合分片场景
shardingColumns: #分片列名称,多个列以逗号分隔
shardingAlgorithmName: # 分片算法名称
hint: # Hint 分片策略
shardingAlgorithmName: # 分片算法名称
none: # 不分片
tableStrategy: # 分表策略,同分库策略
keyGenerateStrategy: # 分布式序列策略
column: # 自增列名称,缺省表示不使用自增主键生成器
keyGeneratorName: # 分布式序列算法名称
autoReshardingStrategy: # 自动重分片-策略
autoReshardingMatchingAlgorithmNames: # 自动重分片-条件。可多个,任意一个满足,则触发扩容动作
autoReshardingActionAlgorithmName: scale_sharding # 自动重分片-动作。此处为指定数量扩容
globalIndexStrategy: # 全局索引策略
globalIndexNames: # 全局索引表名称
- t_order_user_id_idx
consistencyLevel: STRONG # 主表和索引表的一致性级别,STRONG 表示强一致,WEAK 表示弱一致,默认为 STRONG 强一致
tableAccessByIndexThreshold: 1000 # 最大回表查询行数,默认为 1000,当查询需要回主表查询且回表行数超过阈值,则直接查询主表,配置为 0 则表示关闭回表行数检查
syncDelayMillisecondsThreshold: 1000 # 索引表和主表同步延迟时间的阈值,单位毫秒,默认为 1000,当一致性级别为 WEAK 且主表和索引表同步延迟超过阈值,则直接查询主表
autoTables: # 自动分片表规则配置
t_order_auto: # 逻辑表名称
actualDataSources (?): # 数据源名称
shardingStrategy: # 切分策略
standard: # 用于单分片键的标准分片场景
shardingColumn: # 分片列名称
shardingAlgorithmName: # 自动分片算法名称
globalIndexStrategy: # 全局索引策略
globalIndexNames: # 全局索引表名称
- t_order_user_id_idx
consistencyLevel: STRONG # 主表和索引表的一致性级别,STRONG 表示强一致,WEAK 表示弱一致,默认为 STRONG 强一致
tableAccessByIndexThreshold: 1000 # 最大回表查询行数,默认为 1000,当查询需要回主表查询且回表行数超过阈值,则直接查询主表,配置为 0 则表示关闭回表行数检查
syncDelayMillisecondsThreshold: 1000 # 索引表和主表同步延迟时间的阈值,单位毫秒,默认为 1000,当一致性级别为 WEAK 且主表和索引表同步延迟超过阈值,则直接查询主表
globalIndexes: # 全局索引规则配置
<logic-table-name> (+): # 全局索引逻辑表名称
actualDataNodes (?): # 由数据源名 + 表名组成(参考Inline语法规则)
databaseStrategy (?): # 分库策略,缺省表示使用默认分库策略,以下的分片策略只能选其一
standard: # 用于单分片键的标准分片场景
shardingColumn: # 分片列名称
shardingAlgorithmName: # 分片算法名称
complex: # 用于多分片键的复合分片场景
shardingColumns: #分片列名称,多个列以逗号分隔
shardingAlgorithmName: # 分片算法名称
hint: # Hint 分片策略
shardingAlgorithmName: # 分片算法名称
none: # 不分片
tableStrategy: # 分表策略,同分库策略
coveringColumns: # 全局索引覆盖列
- user_id
autoGlobalIndexes: # 自动全局索引表规则配置
t_order_auto: # 全局索引逻辑表名称
actualDataSources (?): # 数据源名称
shardingStrategy: # 切分策略
standard: # 用于单分片键的标准分片场景
shardingColumn: # 分片列名称
shardingAlgorithmName: # 自动分片算法名称
coveringColumns: # 全局索引覆盖列
- user_id
bindingTables (+): # 绑定表规则列表
- <logic_table_name_1, logic_table_name_2, ...>
- <logic_table_name_1, logic_table_name_2, ...>
broadcastTables (+): # 广播表规则列表
- <table-name>
- <table-name>
defaultDatabaseStrategy: # 默认数据库分片策略
defaultTableStrategy: # 默认表分片策略
defaultAutoReshardingStrategy: # 默认 自动重分片-策略
autoReshardingMatchingAlgorithmNames:
autoReshardingActionAlgorithmName: scale_sharding
defaultKeyGenerateStrategy: # 默认的分布式序列策略
defaultShardingColumn: # 默认分片列名称
# 分片算法配置
shardingAlgorithms:
<sharding-algorithm-name> (+): # 分片算法名称
type: # 分片算法类型
props: # 分片算法属性配置
# ...
auto_interval_daily:
type: AUTO_INTERVAL # 自动分片-自动时间段分片算法
props:
datetime-lower: "2023-06-01 00:00:00" # 分片的起始时间范围,固定格式时间戳格式:yyyy-MM-dd HH:mm:ss
datetime-upper: "2023-06-25 23:59:59"
sharding-seconds: 86400 # 单一分片所能承载的最大时间,单位:秒
# 分布式序列算法配置
keyGenerators:
<key-generate-algorithm-name> (+): # 分布式序列算法名称
type: # 分布式序列算法类型
props: # 分布式序列算法属性配置
# ...
# 自动重分片条件配置
autoReshardingMatchingAlgorithms:
interval_upper_time_HIGH_WATERLINE_condition:
type: INTERVAL_UPPER_TIME_HIGH_WATERLINE
props:
remaining-seconds-until-upper-time: 691200 # 距离 upper-time 还剩多少秒时,触发重分布
# 扩容动作配置
autoReshardingActionAlgorithms:
scale_sharding:
type: SCALE_SHARDING
props:
operation-type: add # 操作类型。add、subtract、multiply、divide
amount: 20 # 数量。和上面的操作类型配合,比如加2片,还是 2倍扩容