MySQL查询性能提升?

时间:2014-03-01 22:32:52

标签: mysql performance

我的MySQL查询类似于:

SELECT `col1`, `col2`
FROM `mytable`
WHERE `col3` = "stuff"
ORDER BY `hour_col` DESC, `minute_col` DESC, `second_col` DESC
LIMIT 1

但是因为我只需要返回的第一行,所以似乎可能有更有效的方法来执行此操作。有什么想法吗?

此外,小时,分钟和第二列需要保持单独的列(换句话说,我不能将它们存储为单个Time数据类型)。

1 个答案:

答案 0 :(得分:0)

我不相信鉴于你的限制,除了在col_3,hour_col,minute_col,second_col,col1,col2之间放置一个复合索引之外,这可以更有效率。

 CREATE INDEX covering_index 
        ON mytable (col_3, hour_col, minute_col,second_col, col1, col2);

这个索引有助于避免主表中的点查找它是否排序并返回所需的值。