Ok. Consiglierei di utilizzare LOAD DATA INFILE esplicitamente. Per coloro che non l'hanno usato, consideralo solo come un'istruzione selezionata per ora finché non lo vedi.
Ecco un bell'articolo su prestazioni e strategie intitolato Testare il modo più veloce per importare una tabella in MySQL . Non lasciare che la versione MySQL del titolo o all'interno dell'articolo ti spaventi. Saltando in fondo e raccogliendo alcune conclusioni:
Ci sono anche bei punti, principalmente nei commenti dei colleghi avanti e indietro sugli indici secondari (che non hai). Il punto importante per gli altri è aggiungerli a posteriori.
Spero che questi link siano utili. E i tuoi dati arrivano ... in 10 minuti (in un'altra tabella di test con LOAD DATA INFILE
).
Commenti generali
Il modo più lento per farlo è in un linguaggio di programmazione tramite un ciclo while, riga per riga. Diventare più veloci è certamente batch, in cui un'istruzione di inserimento passa, diciamo, da 200 a 1k righe alla volta. In modo sostanziale in termini di prestazioni è LOAD DATA INFILE. Il più veloce sono i file non elaborati (quello che faccio, ma oltre lo scopo di parlare qui).