OK. Ik zou aanraden om LOAD DATA INFILE te gebruiken uitdrukkelijk. Voor degenen die het nog niet hebben gebruikt, beschouw het voor nu als een select statement totdat je het ziet.
Hier is een mooi artikel over prestaties en strategieën met de titel De snelste manier testen om een tabel in MySQL te importeren . Laat je niet afschrikken door de mysql-versie van de titel of in het artikel. Naar de bodem springen en enkele conclusies trekken:
Er zitten ook fijne punten in, voornamelijk in peer-commentaar over en weer over secundaire indexen (die je niet hebt). Het belangrijkste punt voor anderen is om ze achteraf toe te voegen.
Ik hoop dat deze links nuttig zijn. En uw gegevens komen binnen ... in 10 minuten (in een andere testtabel met LOAD DATA INFILE
).
Algemene opmerkingen
Ongeveer de langzaamste manier om het te doen is in een programmeertaal via een while-lus, rij voor rij. Sneller worden is zeker batch, waarbij één insert-statement bijvoorbeeld 200 tot 1k rijen tegelijk doorgeeft. Aanzienlijk in prestaties is LOAD DATA INFILE. Het snelst zijn onbewerkte bestanden (wat ik doe, maar buiten het bereik van hier te praten).