mysql中,5000万条数据被均分在10张分表中,表结构为组织id、客户id以及订单金额,现在想通过分布式处理的方式统计所有组织下所有客户订单的金额,有好一点的实现方案吗?
5条回答 默认 最新
- jackson_zx_liang 2017-11-10 07:04关注
补充个信息:组织有1000个,客户有10000个
我用groupby功能对一个分表数据以组织id和客户id进行分组并sum金额,需要的时间就花了15分钟。
目前想到的解决方案如下:启动一个client,启动5个worker(1-5),client查组织表取出所有的组织id,然后分别发送给5个worker。worker的处理逻辑相同,遍历组织id列表,针对每个组织id都执行如下操作:
select a.forgid,a.fcustomerid,sum(a.famount) amount
from(select * from t_amount_0 where forgid='org0.0.0'
union ALLselect * from t_amount_1 where forgid='org0.0.0') a
GROUP BY a.fcustomerid ORDER BY a.fcustomerid
遍历完毕后每个worker就能得到当前对应的两个分表中所有组织id的每个客户单据总额。
然后worker把结果返回到client。
当client得到全部5个worker的返回结果后,对5个返回结果进行合并,最终能得到结果。
这种方案是我目前能像到的唯一方案了。
但是这种方案还是很慢。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 C++使用Gunplot
- ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
- ¥15 matlab数字图像处理频率域滤波
- ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
- ¥15 ELGamal和paillier计算效率谁快?
- ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
- ¥15 Arcgis相交分析无法绘制一个或多个图形
- ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
- ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
- ¥15 fpga自动售货机数码管(相关搜索:数字时钟)