Wenn ich große Dateien in PHP verarbeite, mache ich das aufgrund der Limitierungen und auch um Rückmeldung während des Prozesses zu erhalten in PHP CLI. Um mögliche memory Probleme zu vermeiden die Datei am besten zeilenweise einlesen.
Was Inserts/Updates betrifft verwende ich wenn nötig mysqli_multi_query. Zum Beispiel Stapel von 100 oder auch mehr Datensätzen. Das kann den Import erheblich beschleunigen. Sollte der MySQL Server entfernt sein, könnte auch noch MYSQLI_CLIENT_COMPRESS hilfreich sein.
Dedlfix' Hinweis auf die MySQL Kommandozeilen-Tools klingt ebenfalls sehr vielversprechend. Habe damit persönlich (außer etwas probieren) wenig Erfahrung, da ich während des Imports die Daten meist noch weiter aufbereiten und/oder abgleichen möchte.