Mysql
 sql >> Database >  >> RDS >> Mysql

Il modo più veloce per importare file CSV di grandi dimensioni in MySql utilizzando MySql CLI

In questo post condividerò il modo più veloce per importare file CSV di grandi dimensioni in MySql utilizzando MySql CLI. Potresti aver scaricato feed del prodotto o qualsiasi altro rapporto da altre fonti, ma la dimensione del file che hai scaricato è di circa 2 GB con 5 milioni di righe. E cercando il modo più veloce per importare questo enorme file CSV nel tuo database MySql, allora questo post è per te.



L'importazione di file .csv di grandi dimensioni di circa 2 GB da PhpMyAdmin è molto compito noioso e potresti non riuscire a importare correttamente il file. È possibile che si verifichi un timeout della connessione in fase, un errore di timeout di esecuzione. L'importazione di file utilizzando la porta http richiederà molto tempo. Quindi ti suggerisco di utilizzare MySql CLI per importare questo tipo di file di grandi dimensioni nel tuo database MySql. Come sai, la riga di comando è il modo più veloce per portare a termine l'attività. Qui condividerò alcune query MySql che ti aiutano a importare file CSV nel tuo database MySql in pochi minuti.

Leggi anche : Come dividere file CSV di grandi dimensioni in file più piccoli

Accedi al database MySql utilizzando CLI

 mysql -u username -p dbname --local-infile

Dopo aver eseguito il comando seguente ti chiederà la password del database, digita la password e premi invio e accederai all'interfaccia di comando di MySql, qui puoi eseguire qualsiasi query, ogni query viene eseguita la cena velocemente qui, prova una volta che potresti davvero risparmiare tempo sull'esecuzione di grandi query.



Query MySql per importare file CSV riga di comando

LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv'  INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

Se hai un file CSV separato da tabulazioni puoi utilizzare la seguente query, sostituisci semplicemente FIELDS TERMINATED BY ',' da CAMPI CHIUSI DA '\t'

LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv'  INTO TABLE table_name FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';

Se desideri che solo una colonna specifica venga inserita dal file CSV al database MySql, utilizza la seguente query per ignorare le colonne CSV indesiderate.

LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv'  INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@col1,@col2,@col3,@col4,@col5,@col6) set [email protected],[email protected], [email protected];

Dove col1,2,3,4,5,6 sono la colonna del file CSV @ ignorerà tutte le colonne tranne quelle del database che hai impostato come [email protected],[email protected], [email protected]