Zakładając, że zestaw danych jest zbyt duży, aby można go było przechowywać w pamięci.... Jeśli potrzebujesz tylko pierwszych n elementów, możesz zachować tylko najlepsze wyniki w pamięci podczas przeglądania 1 miliona wierszy. Działałoby to również z twoim pomysłem na tabelę tymczasową, zapisując najlepsze rekordy z każdej partii.
Inną opcją byłoby napisanie funkcji zdefiniowanej przez użytkownika:
http://dev.mysql.com/doc/refman /5.1/pl/dodawanie-funkcji.html