Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách nhanh nhất để nhập tệp CSV lớn vào MySql bằng MySql CLI

Trong bài đăng này, tôi sẽ chia sẻ Cách nhanh nhất để nhập tệp CSV lớn vào MySql bằng MySql CLI. Bạn có thể đã tải xuống nguồn cấp dữ liệu sản phẩm hoặc bất kỳ báo cáo nào khác từ các nguồn khác, Nhưng kích thước tệp bạn đã tải xuống khoảng 2GB với 5 triệu hàng. Và đang tìm cách nhanh nhất để nhập tệp CSV khổng lồ này vào cơ sở dữ liệu MySql của bạn, Sau đó, bài đăng này là dành cho bạn.



Nhập tệp .csv lớn, khoảng 2GB từ PhpMyAdmin là rất công việc tẻ nhạt, Và bạn có thể không thành công để nhập tệp đúng cách. Bạn có thể pha hết thời gian chờ kết nối, lỗi thời gian chờ thực thi. Việc nhập tệp bằng cổng http sẽ mất rất nhiều thời gian. Vì vậy, tôi khuyên bạn nên sử dụng MySql CLI để nhập loại tệp khổng lồ này vào cơ sở dữ liệu MySql của bạn. Như bạn biết dòng lệnh là cách nhanh nhất để thực hiện nhiệm vụ. Ở đây tôi sẽ chia sẻ một số truy vấn MySql giúp bạn nhập tệp CSV vào cơ sở dữ liệu MySql của bạn trong vài phút.

Cũng đọc: Cách chia tệp csv lớn thành các tệp nhỏ hơn

Đăng nhập vào cơ sở dữ liệu MySql bằng CLI

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

Sau khi chạy lệnh sau, nó sẽ yêu cầu mật khẩu cơ sở dữ liệu, hãy nhập mật khẩu và nhấn enter và bạn sẽ đăng nhập vào giao diện lệnh MySql của mình, Tại đây bạn có thể chạy bất kỳ truy vấn nào, mỗi truy vấn chạy rất nhanh tại đây, hãy thử một lần bạn thực sự có thể tiết kiệm thời gian của mình về việc chạy các truy vấn lớn.



Truy vấn MySql để nhập dòng lệnh tệp CSV

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

Nếu bạn có tệp CSV được phân tách bằng tab, bạn có thể sử dụng truy vấn sau chỉ cần thay thế LĨNH VỰC ĐƯỢC CHẤM DỨT BỞI ‘,’ từ CÁC LĨNH VỰC ĐƯỢC CHẤM DỨT BỞI ‘\ t’

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

Nếu bạn muốn chỉ một cột cụ thể cần phải đưa từ tệp CSV vào cơ sở dữ liệu MySql, sau đó sử dụng truy vấn sau để bỏ qua các cột CSV không mong muốn.

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

Trong đó col1,2,3,4,5,6 là cột tệp CSV @ sẽ bỏ qua tất cả các cột ngoại trừ những cột cơ sở dữ liệu mà bạn đã đặt như example @ sqldat.com, example @ sqldat.com, [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. Sử dụng vai trò mới trong MySQL 8

  2. Cách đơn giản để tính giá trị trung bình với MySQL

  3. Truy vấn SQL để xóa bảng trong MySQL

  4. PDO nhiều truy vấn

  5. Quản lý MySQL với phpMyAdmin trên Ubuntu 10.10 (Maverick)