我一直在研究编写这个查询的最佳方法,但我似乎无法提高性能。
该查询用于构建“趋势主题”标记云。
桌子上有大约一百万条记录,而且还在不断增长。
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 is左右徘徊,太慢了。
我给主题添加了一个索引,但是性能跳到了1400 an。
是否有一种更有效的方法来编写这个查询,从而大大提高性能?
发布于 2014-10-24 13:47:38
您已经完成了主题索引,但这不会提高性能。
向datetime
添加索引,因为您正在进行范围搜索,而在该列上索引将提高性能。
https://stackoverflow.com/questions/26549124
复制相似问题