Tôi có một truy vấn với mệnh đề ORDER BY sử dụng một cột là cột cuối cùng trên một chỉ mục đang được sử dụng trong mệnh đề WHERE, về cơ bản có dạng:
SELECT
cols
FROM
tables
WHERE
col_1 = x
AND col_2 = y
AND col_3 = z
ORDER BY col_4
và chỉ mục được tạo trên các cột (col_1, col_2, col_3, col_4) theo thứ tự đó.
Khi tôi cấu hình truy vấn, hơn 99% thời gian được sử dụng ở trạng thái "Sắp xếp kết quả". col_4 là cột dấu thời gian nếu điều đó tạo ra sự khác biệt. Tôi hiểu rằng ORDER BY chỉ có thể sử dụng một chỉ mục trong một số trường hợp nhất định, nhưng tôi vẫn hơi bí ẩn về việc chính xác khi nào trình tối ưu hóa sẽ làm như vậy.