有什么方法可以优化此查询以更快地运行。
这是我的问题:
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
答案 0 :(得分:0)
LIMIT
在这里并没有多大的帮助,因为MySQL必须先计算最大值,然后对它们进行排序,才能应用限制。基本上,您只是在节省带宽。
您可以为查询执行的唯一优化可能是提供覆盖索引,以加快GROUP BY
并读取值。按顺序在id_forumtops
和datum
上创建多列索引。