[英]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.