mysql_query bufferizza l'intero set di risultati nella memoria php. Questo è comodo e generalmente molto veloce, ma stai riscontrando uno svantaggio.
mysql_unbuffered_query () esiste. Non cattura l'intero set di risultati tutto in una volta. Afferra piccoli pezzi in un momento in cui prendi le righe dal set di risultati.