数据库分库分表是缓解数据库服务器压力和增加并发量的途径之一,但是随着分库分表之后,也不可避免的带来了一些问题,很显而易见的问题就是如何解决分库后的查询统计。分库之后没有SQL可以用了,简单的过滤后再合并还可以做,但分组都会很麻烦,必须把分库分组汇总结集再分组汇总。这对很多java应用程序员来讲是个挑战。但是,数据量太大大,不分库也不行,进退两难。
这时候,采用集算器来做后一步的汇总计算就很容易,比如刚才说的分组汇总问题,写出来只要这么几行:

ABC
1=[connect("orclA"),connect("orclB")]
/连接多个数据源
2select sales.dept,sum(orders.amount)amount from orders,sales where orders.salesID=sales.salesID group by sales.dept/分组汇总SQL
3fork A1=A3.query@x(A2)/并行计算
4=A3.conj()
/合并结果
5=A4.groups(DEPT;sum(AMOUNT):AMOUNT)
/二次分组汇总

这里实现分组的代码还考虑了让分库并行执行SQL。