我有一个带有 ORDER BY 子句的查询,它使用一个列,该列是 WHERE 子句中使用的索引上的最后一列,基本上是以下形式:
SELECT
cols
FROM
tables
WHERE
col_1 = x
AND col_2 = y
AND col_3 = z
ORDER BY col_4
Run Code Online (Sandbox Code Playgroud)
并按该顺序在列(col_1、col_2、col_3、col_4)上创建索引。
当我分析查询时,超过 99% 的时间都花费在“排序结果”状态。col_4 是一个时间戳列,如果这有什么区别的话。我知道 ORDER BY 只能在某些情况下使用索引,但我仍然有点不明白优化器何时会这样做。