有没有什么方法可以优化这个查询,使其运行得更快。
下面是我的问题:
SELECT MAX(datum) AS maxdatum
FROM forumtext
GROUP BY id_forumtops
ORDER BY maxdatum DESC
LIMIT 10
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE forumtext index NULL datum_2 8 NULL 283037 Using index; Using temporary; Using filesort我不知道如何进一步提高这个查询的性能。我知道它很慢,因为我使用的是MAX(),而它没有索引。我还能做些什么来防止它减慢查询速度吗?
UPDATE @Marcus,我已经按照这个顺序在id_forumtops和datum上创建了一个多列索引。它并不是很快...
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE forumtext index NULL id_forumtops_2 8 NULL 283070 Using index; Using temporary; Using filesort发布于 2014-01-09 05:40:05
在这里,LIMIT对性能的帮助不大,因为MySQL必须先计算最大值,然后对它们进行排序,然后才能应用限制。基本上,您只是节省了带宽。
您可以对查询进行的惟一优化可能是提供一个覆盖索引来加快GROUP BY和读取值的速度。按此顺序在id_forumtops和datum上创建多列索引。
https://stackoverflow.com/questions/21006695
复制相似问题