mysql:通过查询性能改进组?

时间:2011-11-01 00:39:39

标签: mysql sql query-optimization

无论如何都要提高这样的查询的性能:

  SELECT MAX(my_index)  
    FROM my_table 
GROUP BY my_type

我在my_index上有一个索引,在my_type上有另一个索引。一旦我有数百万条记录,查询大约需要10秒钟。 my_index对每个记录和自动增量都是唯一的。

我认为如果我创建一个复合索引,应该快速执行此查询,但我不确定如何。在my_index上使用复合索引的相同查询,my_type比没有它的时间长两倍...

2 个答案:

答案 0 :(得分:3)

复合索引应按此顺序打开(my_type,my_index)。如果你能把这个索引变成PK,那就更好了(因为它在磁盘上物理命令) 你没有指定你有多少记录,如果你有1000000000000条记录,那么我会说10秒是非常快的。

答案 1 :(得分:0)

我认为你想要my_type,my_index上的索引,而不是相反。我不确定OTTOMH是否MySQL支持索引的双向遍历,但如果不支持,则需要在my_type,my_index DESC上创建索引,以便您要查找的记录是索引中的第一个,而不是最后一次。