Znalazłem 2 (trochę oczywiste) rzeczy, które pomogły przyspieszyć to zapytanie do satysfakcjonującego poziomu:
-
Zminimalizuj liczbę wierszy, które należy posortować. Dzięki użyciu indeksu w polu „id” i podselekcji, aby najpierw zmniejszyć liczbę rekordów, sortowanie plików w obliczonej kolumnie nie jest takie złe. Tzn:
SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE FROM (SELECT * FROM sometable WHERE id = 1) AS t ORDER BY SCORE DESC
-
Spróbuj zwiększyć wartość sort_buffer_size w my.conf, aby przyspieszyć te sortowanie plików.