このクエリを満足のいくレベルまで高速化するのに役立つ2つの(明らかな)ものを見つけました:
-
ソートする必要のある行数を最小限に抑えます。 'id'フィールドのインデックスと副選択を使用して最初にレコード数をトリミングすることにより、計算列でのファイルの並べ替えはそれほど悪くありません。つまり:
SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE FROM (SELECT * FROM sometable WHERE id = 1) AS t ORDER BY SCORE DESC
-
sort_buffer_size を増やしてみてください my.confで、これらのファイルソートを高速化します。