PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 数据库 > MySQL教程 > 正文

    mysql group by count用法及性能问题

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:今天在做项目的时候,需要查询出每个市里的所有会员总数,数据库大概字段有,uid,uname,ctiyid(市id)刚开始我是使用如下语句查询select*f...
    今天在做项目的时候,需要查询出每个市里的所有会员总数,数据库大概字段有,uid,uname,ctiyid(市id)
    刚开始我是使用如下语句查询

    1. select *  from(SELECT ctiyid,count(*) as num FROM `$table_name`  GROUP BY ctiyid  ) st 

    后来经过测试发现,此方法中,group by子句在扫描表的时候,每一篇文章的都去执行了两次count,因此效率极低

    后来优化如下成下面代码
     

    1. SELECT cityid, sumCASE WHEN cityid THEN 1 ELSE 0 END ) AS num FROM `$table_name` GROUP BY cityid 

    总共只需要执行一次表扫描,并且没有每次都count一下,而是用sum求一个总和,大大了减少了查询时间。效率会提高几百甚至几千倍


     

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-35-3664-1.html
    相关热词搜索: mysql mysql性能 count