Ik heb 2 (soort van voor de hand liggende) dingen gevonden die hebben geholpen om deze zoekopdracht naar een bevredigend niveau te brengen:
-
Minimaliseer het aantal rijen dat moet worden gesorteerd. Door een index op het 'id'-veld te gebruiken en een subselect om eerst het aantal records bij te knippen, is de bestandssortering op de berekende kolom niet zo slecht. Dwz:
SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE FROM (SELECT * FROM sometable WHERE id = 1) AS t ORDER BY SCORE DESC
-
Probeer de sort_buffer_size te vergroten in my.conf om die bestandssorteringen te versnellen.