繁体   English   中英

使用选择,计数和分组依据的MySQL性能问题

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

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