Ich habe eine Abfrage mit einer ORDER BY-Klausel, die eine Spalte verwendet, die die letzte Spalte eines Index ist, der in der WHERE-Klausel verwendet wird, im Wesentlichen in der folgenden Form:
SELECT
cols
FROM
tables
WHERE
col_1 = x
AND col_2 = y
AND col_3 = z
ORDER BY col_4
und der Index wird für Spalten (col_1, col_2, col_3, col_4) in dieser Reihenfolge erstellt.
Wenn ich die Abfrage profiliere, wird über 99% der Zeit im Status "Sortierergebnis" verbracht. col_4 ist eine Zeitstempelspalte, wenn dies einen Unterschied macht. Ich verstehe, dass ORDER BY nur unter bestimmten Umständen einen Index verwenden kann, aber ich bin immer noch ein bisschen verwirrt, wann genau der Optimierer dies tun würde.