Mam zapytanie z klauzulą ORDER BY, która wykorzystuje kolumnę, która jest ostatnią kolumną w indeksie używanym w klauzuli WHERE, zasadniczo w postaci:
SELECT
cols
FROM
tables
WHERE
col_1 = x
AND col_2 = y
AND col_3 = z
ORDER BY col_4
a indeks jest tworzony dla kolumn (col_1, col_2, col_3, col_4) w tej kolejności.
Kiedy profiluję zapytanie ponad 99% czasu spędza w stanie „Wynik sortowania”. kolumna_4 jest kolumną ze znacznikiem czasu, jeśli ma to znaczenie. Rozumiem, że ORDER BY może korzystać z indeksu tylko pod pewnymi warunkami, ale nadal jestem nieco zaskoczony, kiedy dokładnie to zrobiłby optymalizator.