文章详情页
mysql - 分库后如果显示各分库下合并的数据
浏览:164日期:2022-06-21 15:25:27
问题描述
B2C电商,假如有用户表,订单表,商品表,针对用户ID,进行hash后,分库,假设分为A,B,C,D四个库,相应的不同用户下的订单也存放在对应的A,B,C,D库里,商品表做冗余存放在所有库里,那如果要在后台订单里看到所有的订单,这时候要怎么处理,把A,B,C,D的订单合并起来再排序?这套规则有组件可以实现吗?还是要自己写代码?
问题解答
回答1:订单表结构是一样的,建议在数据库层去处理,sql语句union联合查询,然后进行order by,limit处理,程序端直接拿到处理后的数据;代码解决会吃内存
回答2:分库分表本身就是一把双刃剑,如果单量在10玩,百万级,不建议现在就分。对于你说的这个查询条件,如果需求还蛮大,查询时候也蛮多的话,我建议单独搭建一个库,将之前分库的数据再汇总过来(只汇总有查询需要的),自己读bin log,写ETL就行,这样除了解决你的需求外还有个好处就是分析统计很方便。或者直接用阿里的开源中间件,将数据库和业务程序隔离开也行
回答3:你这个按用户维度分库分表的,如果要实现查询,需要按订单维度再次进行分库分表,所以会数据冗余
上一条:mysql分表之后怎么查询下一条:MySQL"="自动 like
相关文章:
1. MYSQL 根据两个字段值查询 但两个值的位置可能是互换的,这个怎么查?2. javascript - ios返回不执行js怎么解决?3. java for循环的时候增加循环体的长度是不是不太好的?4. 通过AJP的Tomcat 7 Websockects无法正常工作有什么建议么?5. css - 有没有什么办法用背景色把部分border给遮挡呢?6. css3 - canvas在IOS8中不兼容。画不出来。7. java - spring AOP 不生效8. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????9. mysql - 千万级数据表如何有效的变更字段?10. delete关键字删除元素的时候,它的值是默认为什么类型呢?可以默认是为0嘛?
排行榜

网公网安备