【java】springboot分库分表 12 种分片算法(下)
标准分片算法
6、INLINE
行表达式分片算法,适用于比较简单的分片场景,利用Groovy
表达式在算法属性内,直接书写分片逻辑,省却了配置和代码开发,只支持SQL语句中的 = 和 IN 的分片操作,只支持单分片键 。
该算法有两属性:
-
algorithm-expression
:编写Groovy
的表达式,比如:t_order_$->{t_order_id % 3}
表示根据分片健 t_order_id 取模获得 3 张 t_order 分片表 t_order_0 到 t_order_2。 -
allow-range-query-with-inline-sharding
:由于该算法只支持含有 = 和 IN 操作符的SQL,一旦SQL使用了范围查询 >、< 等操作会报错。要想执行范围查询成功,该属性开启为true
即可,一旦开启范围查询会无视分片策略,进行全库表路由查询,这个要慎重开启 !
YML
核心配置如下:
spring:s