[英]MySQL Performance Issue using Select, Count, and Group By
我一直在研究编写此查询的最佳方法,但是似乎无法提高性能。
该查询用于构建“趋势主题”标签云。
该表中有大约一百万条记录,并且还在不断增长。
InnoDB表结构是...
id-int(15)[AI,主要的,唯一的]
话题-varchar(50)
约会时间
这是我的查询...
SELECT topic, COUNT(topic) AS topicCount
FROM table
WHERE datetime > DATE_SUB( NOW(), INTERVAL 24 HOUR) AND topic!=''
GROUP BY topic HAVING topicCount>1
ORDER BY topicCount DESC
LIMIT 10
查询的性能徘徊在300毫秒左右,这太慢了。
我为主题添加了索引,但性能跃升至1400毫秒。
有没有一种更有效的方式编写此查询,可以大大提高性能?
您已完成对主题的索引编制,但不会提高性能。
由于您正在进行范围搜索,因此在datetime
添加索引,并在该列上添加索引将提高性能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.