Zwei zu berücksichtigende Optionen:
1) Am einfachsten ist es, mehrere Zeilen mit Werten in eine Einfügung aufzunehmen. Das ist viel, viel schneller als das Ausführen mehrerer Einfügungen.
Anstelle von INSERT INTO tbl ( cols ) VALUES ( vals )
, machen Sie so etwas wie INSERT INTO tbl ( cols ) VALUES ( vals ), ( vals ), ( vals )
Die Anzahl der Zeilen, die Sie auf einmal einfügen können, hängt von der maximalen Paketgröße des MySQL-Servers ab, aber Sie können wahrscheinlich 100, 1000, vielleicht 10000 Zeilen sicher ausführen, und es sollte Ihnen eine Leistungssteigerung von einer Größenordnung oder mehr geben.
Siehe http://dev.mysql.com/doc/ refman/5.5/en/insert-speed.html
2) DATEN INFILE LADEN ist ein bisschen anders, erfordert mehr Arbeit und hat seine eigenen Anforderungen, ist aber sehr, sehr schnell.