分片算法

    可配置属性:

    哈希取模分片算法

    类型:HASH_MOD

    可配置属性:

    属性名称数据类型说明
    sharding-countint分片数量

    基于分片容量的范围分片算法

    类型:VOLUME_RANGE

    可配置属性:

    属性名称数据类型说明
    range-lowerlong范围下界,超过边界的数据会报错
    range-upperlong范围上界,超过边界的数据会报错
    sharding-volumelong分片容量

    类型:BOUNDARY_RANGE

    自动时间段分片算法

    类型:AUTO_INTERVAL

    可配置属性:

    属性名称数据类型说明
    datetime-lowerString分片的起始时间范围,时间戳格式:yyyy-MM-dd HH:mm:ss
    datetime-upperString分片的结束时间范围,时间戳格式:yyyy-MM-dd HH:mm:ss
    sharding-secondslong单一分片所能承载的最大时间,单位:秒

    Apache ShardingSphere 内置的标准分片算法实现类包括:

    行表达式分片算法

    使用 Groovy 的表达式,提供对 SQL 语句中的 和 IN 的分片操作支持,只支持单分片键。 对于简单的分片算法,可以通过简单的配置使用,从而避免繁琐的 Java 代码开发,如: t_user_$->{u_id % 8} 表示 表根据 u_id 模 8,而分成 8 张表,表名称为 t_user_0 到 。 详情请参见行表达式

    类型:INLINE

    可配置属性:

    属性名称数据类型说明默认值
    algorithm-expressionString分片算法的行表达式-
    allow-range-query-with-inline-sharding (?)boolean是否允许范围查询。注意:范围查询会无视分片策略,进行全路由false

    可配置属性:

    复合行表达式分片算法

    详情请参见行表达式

    类型:COMPLEX_INLINE

    属性名称数据类型说明默认值
    sharding-columns (?)String分片列名称,多个列用逗号分隔。如不配置无法则不能校验-
    algorithm-expressionString分片算法的行表达式-
    allow-range-query-with-inline-sharding (?)boolean是否允许范围查询。注意:范围查询会无视分片策略,进行全路由false

    Hint 行表达式分片算法

    详情请参见行表达式

    类型:HINT_INLINE

    属性名称数据类型说明默认值
    algorithm-expression (?)String分片算法的行表达式${value}

    通过配置分片策略类型和算法类名,实现自定义扩展。

    可配置属性: