高洛峰2017-04-17 16:52:13
从数据库优化角度出发,最后结果就一个数count(*)大量的关联导致内存消耗跟时间浪费.
给个思路吧:
将sql结果做成如下:
最后count(*)等于每一行数量相乘最后相加,
即:(数量11*数量12*...*数量16)+(数量21*...*数量26)
以减少大量的笛卡尔积.
sql:
select t_for_sale.id, nvl(t1.count1, 0), ...
left join (select id, count(*) count1 from t_user group by id) t1 on t1.id=t_for_sale.id
....
from t_for_sale