简体   繁体   English

mysql group by 如何优化和提高查询速度?

[英]mysql group by How to optimize and improve query speed?

SELECT `time`,count(uid) as log 
FROM ( 
      SELECT distinct uid,
      FROM_UNIXTIME(createtime,"%Y-%m-%d") as time FROM `yq_user_log` 
      WHERE `createtime` BETWEEN 1535126400 AND 1537891199 AND `type` = 'login'  
     ) a GROUP BY time 

For starters, you don't even need to subquery:对于初学者,您甚至不需要子查询:

SELECT
    FROM_UNIXTIME(createtime, '%Y-%m-%d') AS time,
    COUNT(DISTINCT uid) AS log
FROM yq_user_log
WHERE createtime BETWEEN 1535126400 AND 1537891199 AND type = 'login'
GROUP BY time;

I'm not sure that any index would help much here, because you are grouping by a function of a column.我不确定任何索引在这里会有多大帮助,因为您正在按列的函数进行分组。 This would preclude an index helping with GROUP BY .这将排除帮助GROUP BY的索引。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM