多表级联查询分组函数慢问题
4张表级联查询的结果分组求和:
select sum(c.quantity) as quantity,sum(c.prefee) as fee from Cs_AccountBill a join Cs_AccountBillDetail b on a.id= b.AccountBillId join Cs_SettlementDetail c on c.accountBillDetailID = b.id join Cs_Settlement d on c.settlementID = d.id
While it's about 21W records of the result,time of select is about 31 ms.
更改如下:
select c.quantity,c.prefee from Cs_AccountBill a join Cs_AccountBillDetail b on a.id= b.AccountBillId join Cs_SettlementDetail c on c.accountBillDetailID = b.id join Cs_Settlement d on c.settlementID = d.id
查询时间:40ms左右
再将查询的结果map reduce 大概80+ms
BigDecimal sum = list.parallelStream().map(Person::getFee).reduce(BigDecimal::add).get(); //勿用list.stream(),慢