Mysql
 sql >> база данни >  >> RDS >> Mysql

Най-бързият начин за импортиране на голям CSV файл в MySql с помощта на MySql CLI

В тази публикация ще споделя най-бързия начин за импортиране на голям CSV файл в MySql с помощта на MySql CLI. Може да сте изтеглили продуктова емисия или друг отчет от други източници, но размерът на файла, който сте изтеглили, е приблизително 2 GB с 5 милиона реда. И търсите най-бързия начин да импортирате този огромен CSV файл във вашата база данни MySql, тогава тази публикация е за вас.



Импортирането на голям .csv файл приблизително 2 GB от PhpMyAdmin е много досадна задача и може да не успеете да импортирате файла правилно. Можете да фазово изчакване на връзката, грешка при изчакване на изпълнение. Импортирането на файл чрез http порт ще отнеме много време. Затова ви предлагам да използвате MySql CLI, за да импортирате този тип огромен файл във вашата MySql база данни. Както знаете, командният ред е най-бързият начин за изпълнение на задачата. Тук ще споделя няколко MySql заявки, които ви помагат да импортирате CSV файл във вашата MySql база данни за минути.

Прочетете също: Как да разделите голям csv файл на по-малки файлове

Влезте в базата данни MySql с помощта на CLI

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

След като изпълни следната команда, тя ще поиска парола за база данни, въведете парола и натиснете Enter и ще влезете във вашия команден интерфейс MySql, Тук можете да стартирате всяка заявка, всяка заявка се изпълнява бързо тук, опитайте, след като наистина можете да спестите времето си при изпълнение на големи заявки.



MySql заявка за импортиране на командния ред на CSV файл

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

Ако имате CSV файл, разделен с раздели, можете да използвате следната заявка, просто заменете ПОЛЕТА, ПРЕКРАЩАНИ С „,“ от ПОЛЕТА, ПРЕКРАТЯВАНИ С „\t“

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

Ако искате само конкретна колона да трябва да се вмъкне от CSV файл в базата данни MySql, тогава използвайте следната заявка, за да игнорирате нежелани CSV колони.

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];

Където col1,2,3,4,5,6 са колоната на CSV файла @ ще игнорира всички колони, с изключение на колоните на базата данни, които сте задали като [email protected],[email protected], [email protected]




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте променлива на таблица в MySQL

  2. Стъпки за инсталиране на Mysql56 на linux

  3. Грешка при изпращане на пакет QUERY

  4. Как да изпълним две mysql заявки като една в PHP/MYSQL?

  5. Актуализирайте една MySQL таблица със стойности от друга