ShardingSphere每一张分表都需要单据配置yml吗?

欢喜 MyBatis 发布时间:2025-06-04 14:44:29 阅读数:13707 1

ShardingSphere批量配置表

在Apache ShardingSphere中
  并不是每一张分表都必须单独配置YAML规则
    可通过通配符匹配、INLINE 表达式、算法复用 等方式实现批量配置分表规则
	 从而避免为每张表手动编写重复的配置

场景 是否需要单独配置 说明
分片逻辑一致(如按ID取模) ❌ 不需要 可使用 `INLINE` 表达式统一配置
分片逻辑不同(如按时间、地区分片) ✅ 需要 应单独定义分片策略和算法
使用通配符或正则表达式 ❌ 不需要 可以批量匹配多个逻辑表
读写分离/加密等全局规则 ❌ 不需要 对所有表生效

批量配置多张分表

1.使用 `INLINE` 表达式(推荐)

适用于分片逻辑一致的情况(如按用户ID取模):

```yaml
rules:
  - !SHARDING
    tables:
      t_order:  # 逻辑表名
        actual-data-nodes: ds$->{0..1}.t_order_$->{0..1}
        table-strategy:
          standard:
            sharding-column: order_id
            sharding-algorithm-name: order_table_inline

    sharding-algorithms:
      order_table_inline:
        type: INLINE
        props:
          algorithm-expression: t_order_$->{order_id % 2}
 
> 上述配置表示:无论插入哪个订单记录,
  都会根据 `order_id % 2` 自动路由到 `t_order_0` 或 `t_order_1`。

2.使用通配符配置多个逻辑表

当有多个类似结构的表(如 `t_user`, `t_log`, `t_order`)
   可使用通配符进行统一分片配置 
   
```yaml
rules:
  - !SHARDING
    default-table-strategy:
      standard:
        sharding-column: user_id
        sharding-algorithm-name: common_table_inline

    sharding-algorithms:
      common_table_inline:
        type: INLINE
        props:
          algorithm-expression: $->logicTable_$->{user_id % 4}
 
 注意:
    ShardingSphere目前不完全支持“通配逻辑表”的自动映射
	 通常需要结合Spring Boot中Java配置动态生成规则  
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/MyBatis/202506/8469.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者