关于mysql的分库分表

Listening_倾听 2019-08-29 03:18:42
假设有这样的系统:
两种用户类型,一级用户和二级用户,二级用户归属于一级用户,并且是多对多关系,一级用户和二级用户都能购买商品、产生订单。

用户表 users:包含了所有一级用户和二级用户;
一级用户和二级用户关联关系表 user_relation:通过user_id关联;
订单表 orders:一条订单包含 二级用户id(可能没有)、一级用户id。

假设有以下业务:
二级用户分页查看所有订单;
一级用户分页查看所有订单,能看到他自己的订单和归属于他的所有二级用户的订单,并且可能有多种排序规则,比如按订单生成时间排序;
一级用户分页查看所有归属于他的二级用户;


在这种业务场景下,使用什么样的分片规则来水平分表合适。感觉不论采用哪种方法,都无法避免跨库join问题。特别是在分页数越来越大的场景下,性能会急剧下降。
...全文
103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stelf 2019-09-05
  • 打赏
  • 举报
回复
订单和用户怎么会搅在一起?如果单独是用户那么根本不需要分库分表,如果是订单建议按照日期来进行分区就好了。至于你要查用户所有的订单,那么最好加上时间范围,哪怕是银行,也不会给你敞开查十年的流水。或者针对特殊的需求开一些后门即可
Listening_倾听 2019-08-29
  • 打赏
  • 举报
回复
感觉mycat不适合这种复杂的业务场景。有其它合适的中间件吗,或者业界比较通用的方法。

56,682

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧