prova as eseguire una query splittata..ovvero selezioni per esempio 200 record per volta e li aggiungi ad un array volta per volta. molte volte mysql si pianta perche nn accetta query troppo lunghi e/o risultati troppo lunghi..io ho risolto cosi