Saya telah menemukan 2 (semacam jelas) hal yang telah membantu mempercepat kueri ini ke tingkat yang memuaskan:
-
Minimalkan jumlah baris yang perlu diurutkan. Dengan menggunakan indeks pada bidang 'id' dan subselect untuk memangkas jumlah record terlebih dahulu, pengurutan file pada kolom yang dihitung tidak terlalu buruk. Yaitu:
SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE FROM (SELECT * FROM sometable WHERE id = 1) AS t ORDER BY SCORE DESC
-
Coba tingkatkan sort_buffer_size di my.conf untuk mempercepat pengurutan file tersebut.