Supponendo che il tuo set di dati sia troppo grande per essere archiviato in memoria.... Se hai bisogno solo dei primi n elementi, puoi mantenere solo i primi risultati in memoria mentre sfogli le 1 milione di righe. Questo funzionerebbe anche con la tua idea di tabella temporanea, scrivendo i record principali di ogni batch.
Un'altra opzione sarebbe quella di scrivere una funzione definita dall'utente:
http://dev.mysql.com/doc/refman /5.1/it/funzioni-aggiuntive.html