无论如何都要提高这样的查询的性能:
SELECT MAX(my_index)
FROM my_table
GROUP BY my_type
我在my_index上有一个索引,在my_type上有另一个索引。一旦我有数百万条记录,查询大约需要10秒钟。 my_index对每个记录和自动增量都是唯一的。
我认为如果我创建一个复合索引,应该快速执行此查询,但我不确定如何。在my_index上使用复合索引的相同查询,my_type比没有它的时间长两倍...
答案 0 :(得分:3)
复合索引应按此顺序打开(my_type,my_index)。如果你能把这个索引变成PK,那就更好了(因为它在磁盘上物理命令) 你没有指定你有多少记录,如果你有1000000000000条记录,那么我会说10秒是非常快的。
答案 1 :(得分:0)
我认为你想要my_type,my_index上的索引,而不是相反。我不确定OTTOMH是否MySQL支持索引的双向遍历,但如果不支持,则需要在my_type,my_index DESC上创建索引,以便您要查找的记录是索引中的第一个,而不是最后一次。