语句如下
SELECT COUNT(DISTINCT `t`.`id`) FROM `vt_crm`.`customerusers` `t`
LEFT OUTER JOIN `vt_crm`.`customer` `sales`
ON (`t`.`customerid`=`sales`.`id`)
LEFT OUTER JOIN `vt_base`.`cate` `cate`
ON (sales.cateid = cate.id)
LEFT OUTER JOIN `vt_base`.`city` `city`
ON (city.id = sales.cityid)
WHERE ((gradeid='5') AND (sales.enable='1'))
count是查总数,做分页的(customerusers 表 230w数据,customer表50W数据,gradeid是6个值,enable是可用)~
查出来要2秒多。就算去掉后面的cate跟city也要将近2秒
查资料时也试过用SQL_CALC_FOUND_ROWS,FOUND_ROWS比用count还慢~
请问下大家该如何优化这条语句
或者有没有其他方案去查符合条件的总数~
SELECT COUNT(DISTINCT `t`.`id`) FROM `vt_crm`.`customerusers` `t`
LEFT OUTER JOIN `vt_crm`.`customer` `sales`
ON (`t`.`customerid`=`sales`.`id`)
LEFT OUTER JOIN `vt_base`.`cate` `cate`
ON (sales.cateid = cate.id)
LEFT OUTER JOIN `vt_base`.`city` `city`
ON (city.id = sales.cityid)
WHERE ((gradeid='5') AND (sales.enable='1'))
count是查总数,做分页的(customerusers 表 230w数据,customer表50W数据,gradeid是6个值,enable是可用)~
查出来要2秒多。就算去掉后面的cate跟city也要将近2秒
查资料时也试过用SQL_CALC_FOUND_ROWS,FOUND_ROWS比用count还慢~
请问下大家该如何优化这条语句
或者有没有其他方案去查符合条件的总数~