关于mysql分表查询的问题

我准备把 user 表分为 user_1 , user_2 ,user_3 ... user_10 10张表, 然后每个表有 字段A B C D 等等, 然后我业务中 查询的 字段有
A
或者 A与B与C
或者 B与C
等等。 如果我的业务中只根据字段A来查询 , 那么我可以根据A的哈希值来路由到具体的表 , 但是 我现在查询的字段 涉及多个 ,所以没法根据 某一个字段(比如A字段)来对 user 进行分表 。
我现在的方案是 , 把 要查询的列 和 ID主键 的值(user表)插入到 elasticsearch , 查 A与B与C 或者 B与C 等等 的时候 , 从 elasticsearch 取出 响应的 主键ID (可能多个),
现在问题是 , 我拿着 多个 主键ID 怎么去 路由到 不同的表 ?
比如
elasticsearch 返回 id 1,3,5,9,13,18 ,
然后查询语句为
->whereIn('id', [1,3,5,9,13,18])
但是 id=1 的数据在 user_1 , id=3 的数据在 user_2 , id=5 的数据在 user_3 ... ,
那么怎么根据不同的id值从不同的表中取出数据 ??

阅读 1.4k
1 个回答

1:既然都根据A字段来分表操作了,为何还要存储A字段和主键ID的关联关系去用ID查询?
2:做了分表操作,就应该想到数据统计和数据报表的不方便性,数据汇总和统计报表这些还是汇总到hive或则tidb来做

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题