Jeg har fundet 2 (slags åbenlyse) ting, der har hjulpet med at fremskynde denne forespørgsel til et tilfredsstillende niveau:
-
Minimer antallet af rækker, der skal sorteres. Ved at bruge et indeks på 'id'-feltet og et undervalg til at trimme antallet af poster først, er filsortering i den beregnede kolonne ikke så dårlig. Dvs:
SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE FROM (SELECT * FROM sometable WHERE id = 1) AS t ORDER BY SCORE DESC
-
Prøv at øge sort_buffer_size i my.conf for at fremskynde disse filsorteringer.