??????????????????????????????????????????????
????????????????????????????????????????db??????????????????????
t_order_0??t_order_1??t_order_item_0??t_order_item_1
# ????ds0 ??ds1??????????
spring.shardingsphere.datasource.names=ds0
#ds0 ????
spring.shardingsphere.datasource.ds0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.ds0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.ds0.jdbc-url=jdbc:mysql://192.168.241.198:3306/shop_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.ds0.username=root
spring.shardingsphere.datasource.ds0.password=root
#??????????
spring.shardingsphere.sharding.binding-tables=t_order,t_order_item
spring.shardingsphere.sharding.broadcast-tables=t_address
# ????????????
# ???? ds0.t_order_0,ds0.t_order_1,ds1.t_order_0,ds1.t_order_1
spring.shardingsphere.sharding.tables.t_order.actual-data-nodes=ds0.t_order_$->{0..1}
# ????????id
spring.shardingsphere.sharding.tables.t_order.table-strategy.inline.sharding-column=order_id
# ???????? ????id????,????????????????????????
spring.shardingsphere.sharding.tables.t_order.table-strategy.inline.algorithm-expression
= t_order_$->{order_id % 2}
# ????SNOWFLAKE????????????
spring.shardingsphere.sharding.tables.t_order.key-generator.column=order_id
spring.shardingsphere.sharding.tables.t_order.key-generator.type=SNOWFLAKE
spring.shardingsphere.sharding.tables.t_order.key-generator.props.worker.id=123
# ????
spring.shardingsphere.sharding.tables.t_order_item.actual-data-nodes=ds0.t_order_item_$->{0..1}
# ????????id
spring.shardingsphere.sharding.tables.t_order_item.table-strategy.inline.sharding-column=order_id
# ???????? ????id????,????????????????????????
spring.shardingsphere.sharding.tables.t_order_item.table-strategy.inline.algorithm-expression=t_order_item_$->{order_id
% 2}
# ????SNOWFLAKE????????????
spring.shardingsphere.sharding.tables.t_order_item.key-generator.column=order_item_id
spring.shardingsphere.sharding.tables.t_order_item.key-generator.type=SNOWFLAKE
spring.shardingsphere.sharding.tables.t_order_item.key-generator.props.worker.id=123????sql??????SELECT
i.* FROM t_order o JOIN t_order_item i ON o.order_id=i.order_id WHERE
o.order_id = 0 or o.order_id = 1????SELECT i.* FROM t_order o JOIN t_order_item
i ON o.order_id=i.order_id WHERE o.order_id
in(0,1)shardingsphere??????<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC2</version>
</dependency>??????????????????????2019-11-17 15:15:29.569 INFO 25344 ---
[nio-8080-exec-1] ShardingSphere-SQL : Rule Type:
sharding 2019-11-17 15:15:29.569 INFO 25344 --- [nio-8080-exec-1]
ShardingSphere-SQL : Logic SQL: SELECT i.* FROM t_order o
JOIN t_order_item i ON o.order_id=i.order_id WHERE o.order_id = 0 or o.order_id
= 1 2019-11-17 15:15:29.570 INFO 25344 --- [nio-8080-exec-1]
ShardingSphere-SQL : SQLStatement:
ShardingSelectOptimizedStatement(tables=Tables(tables=[Table(name=t_order,
alias=Optional.of(o)), Table(name=t_order_item, alias=Optional.of(i))],
schema=Optional.absent()),
groupBy=org.apache.shardingsphere.core.optimize.sharding.segment.select.groupby.GroupBy@da3e8a8,
orderBy=org.apache.shardingsphere.core.optimize.sharding.segment.select.orderby.OrderBy@72768b84,
selectItems=SelectItems(startIndex=7, stopIndex=9, distinctRow=false,
items=[ShorthandSelectItem(owner=Optional.of(i))],
tables=[TableSegment(startIndex=16, stopIndex=22, name=t_order,
quoteCharacter=NONE, owner=Optional.absent(), alias=Optional.of(o)),
TableSegment(startIndex=31, stopIndex=42, name=t_order_item,
quoteCharacter=NONE, owner=Optional.absent(), alias=Optional.of(i))]),
pagination=org.apache.shardingsphere.core.optimize.sharding.segment.select.pagination.Pagination@2b7a3dfe,
containsSubquery=false) 2019-11-17 15:15:29.570 INFO 25344 ---
[nio-8080-exec-1] ShardingSphere-SQL : Actual SQL: ds0
::: SELECT i.* FROM t_order_0 o JOIN t_order_item_1 i ON o.order_id=i.order_id
WHERE o.order_id = 0 or o.order_id = 1 2019-11-17 15:15:29.570 INFO 25344 ---
[nio-8080-exec-1] ShardingSphere-SQL : Actual SQL: ds0
::: SELECT i.* FROM t_order_0 o JOIN t_order_item_0 i ON o.order_id=i.order_id
WHERE o.order_id = 0 or o.order_id = 1 2019-11-17 15:15:29.570 INFO 25344 ---
[nio-8080-exec-1] ShardingSphere-SQL : Actual SQL: ds0
::: SELECT i.* FROM t_order_1 o JOIN t_order_item_1 i ON o.order_id=i.order_id
WHERE o.order_id = 0 or o.order_id = 1 2019-11-17 15:15:29.570 INFO 25344 ---
[nio-8080-exec-1] ShardingSphere-SQL : Actual SQL: ds0
::: SELECT i.* FROM t_order_1 o JOIN t_order_item_0 i ON o.order_id=i.order_id
WHERE o.order_id = 0 or o.order_id =
1????????????????????????????????????????????????????????????????????????????????????????