Hi, For english only, can you translate your mail?

------------------

Liang Zhang (John)
Apache ShardingSphere & Dubbo


tomakemyself <[email protected]> 于2019年11月17日周日 下午5:21写道:

> 大佬,这个绑定表貌似没用啊!可以给解答一下吗?
> 以下是我的配置,这个配置只有一个数据源: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&amp;useSSL=false&amp;useUnicode=true&amp;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_$-&gt;{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_$-&gt;{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_$-&gt;{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_$-&gt;{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&gt;
>     <groupId&gt;org.apache.shardingsphere</groupId&gt;
>     <artifactId&gt;sharding-jdbc-spring-boot-starter</artifactId&gt;
>     <version&gt;4.0.0-RC2</version&gt;
> </dependency&gt;最终执行查询结果如下: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这里依然出现了笛卡尔积,我的理解是这里不应该出现笛卡尔积现象。请问为什么会出现这种情况?

Reply via email to