sharding-jdbc 3.0 部分表分表,关联查询会遍历所有的分表
现有表A(a1,a2,a3),B(b1,b2,b3) ,只对B表分表B_01,B_02,根据b2字段分表
select A.a1,A.a2,A.a3,B.b2,B.b3 from B inner join A on A.a1=B.b1 where B.b2='bxx' and A.a2='axx'
sharding-jdbc 解析后,会遍历所有的分表
select A.a1,A.a2,A.a3,B_01.b2,B_01.b3 from B_01 inner join A on A.a1=B_01.b1 where B_01.b2='bxx' and A.a2='axx'
select A.a1,A.a2,A.a3,B_02.b2,B_02.b3 from B_02 inner join A on A.a1=B_02.b1 where B_02.b2='bxx' and A.a2='axx'
入参bxx只会定位到B_01
需要怎样的修改才会定位到B_01,而不会出现B_02的逻辑
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
嗯,我咨询了下其他人,也说是尽量不要用关联查询
我在弱弱的问一句,有没有办法在关联的时候,根据我的入参直接命中唯一的分表
回复
根据序列定位到子表 后 用子查询吧;像分页什么的要用 es 把数据集中
回复
@最爱的洋芋坨坨 : 坨坨,问个问题,我用shardingjdbc 已分片的表关联未分片的表查询时报错,你有遇到过吗?这种应该如何解决,还是shardingjdbc不支持呢?
你的出发点错了 分表情况下还有联表查询