我的MySQL查询类似于:
SELECT `col1`, `col2`
FROM `mytable`
WHERE `col3` = "stuff"
ORDER BY `hour_col` DESC, `minute_col` DESC, `second_col` DESC
LIMIT 1
但是因为我只需要返回的第一行,所以似乎可能有更有效的方法来执行此操作。有什么想法吗?
此外,小时,分钟和第二列需要保持单独的列(换句话说,我不能将它们存储为单个Time数据类型)。
答案 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);
这个索引有助于避免主表中的点查找它是否排序并返回所需的值。