Tôi đã tìm thấy 2 điều (loại hiển nhiên) đã giúp tăng tốc truy vấn này lên đến mức hài lòng:
-
Giảm thiểu số hàng cần được sắp xếp. Bằng cách sử dụng một chỉ mục trên trường 'id' và một lựa chọn con để cắt bớt số lượng bản ghi trước, việc sắp xếp tệp trên cột được tính không phải là tệ. Tức là:
SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE FROM (SELECT * FROM sometable WHERE id = 1) AS t ORDER BY SCORE DESC
-
Thử tăng sort_buffer_size trong my.conf để tăng tốc các lần chuyển tệp đó.