Non ci interessa tutto il codice ma quello dove tu pensi che possa essere il problema ... o quella zona in cui sei quando il problema si evidenzia ...
Per la memoria, ovviamente, se carichi TUTTO un file di testo da 20 M, ovviamente avrai problemi di memoria ... ma se non si sa come hai implementato tutto (come accedi al file di testo, come lo leggi o lo scrivi) non si potra' dire molto ...
A prescindere dall'occupazione di memoria, mi sembra che tra un "file di testo" in cui ci sono i tuoi dati e MySQL, non ci sia neanche confronto ... Ovviamente il consiglio e' di lasciare comunque perdere i file di testo e passare ad un DBMS ....