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

Làm cách nào để nhập hơn 100000 bản ghi vào cơ sở dữ liệu mysql?

Thông báo lỗi khá rõ ràng và chỉ cho bạn vấn đề là:giới hạn thời gian thực thi trong môi trường php của bạn. Vì vậy, một số cách tiếp cận để giải quyết vấn đề này là hiển nhiên:

  1. tăng giới hạn thời gian trong môi trường của bạn

Bạn có thể làm điều đó bằng cách tăng giới hạn trong cấu hình php của mình hoặc, nếu được phép, bằng cách tăng động nó bên trong tập lệnh nhập của bạn. Vì vậy, một cái gì đó như ini_set('max_execution_time', 3000) . Cả hai tùy chọn đều được ghi lại. Tài liệu php nên luôn luôn là vị trí đầu tiên mà bạn nên bắt đầu tìm kiếm câu trả lời cho một câu hỏi như vậy.

  1. sử dụng một môi trường php khác

Thông thường, giới hạn như vậy được chọn cho môi trường web để giảm rủi ro khi gửi yêu cầu từ bất kỳ ai ngoài đó. Tuy nhiên, không có gì phản đối việc sử dụng một cấu hình khác cho môi trường khác. Các công việc nhập thường không được xử lý bằng cách sử dụng các yêu cầu web, nhưng bằng cách sử dụng php trong dòng lệnh (CLI). Đối với như vậy, một cấu hình riêng biệt được sử dụng. Một lần nữa, điều này được ghi lại. Đó là những gì bạn có thể sử dụng ở đây để cấu hình cả hai môi trường khác nhau theo nhu cầu của bạn. Tuy nhiên đối với điều này, bạn cần truy cập vào php trên CLI. Đó không phải là vấn đề trên hệ thống của riêng bạn, nhưng thường không có sẵn trên dịch vụ lưu trữ web giá rẻ.

  1. chia quá trình nhập của bạn thành nhiều phần nhỏ hơn

Vì dữ liệu bạn nhập được lưu trữ trong tệp sql, vì vậy một tệp văn bản đơn giản, bạn có thể sử dụng bất kỳ trình soạn thảo văn bản thông thường nào để sửa đổi tệp đó. Lưu ý:một trình soạn thảo văn bản, không phải một trình xử lý văn bản. Bạn có thể chia INSERT lớn câu lệnh chứa trong đó thành nhiều đoạn. Cú pháp khá rõ ràng.

  1. sử dụng nhiều câu lệnh chèn riêng biệt thay vì một câu lệnh lớn

Tùy thuộc vào công cụ bạn sử dụng để tạo tệp kết xuất mà bạn đang cố gắng nhập, bây giờ bạn có tùy chọn để tạo tệp kết xuất sao cho nó sử dụng nhiều INSERT riêng biệt câu lệnh (một câu cho mỗi hàng) thay vì một câu lệnh lớn, được kết hợp. mysqldump ví dụ:cung cấp --skip-extended-insert cờ cho điều này. Với một tệp kết xuất như vậy, rất dễ dàng để chia quá trình nhập thành nhiều phần nhỏ hơn bằng cách chỉ cần tách tệp.

  1. bỏ qua php để nhập hoàn toàn

Nếu bạn có quyền truy cập trực tiếp vào máy chủ cơ sở dữ liệu của mình (trong trường hợp này là MySQL), thì bạn chỉ cần tương tác trực tiếp với nó thay vì sử dụng phpMyAdmin công cụ ở giữa. Bạn chỉ cần tải tệp kết xuất của mình trực tiếp bằng source của MySQL yêu cầu. Bằng cách đó, bạn hoàn toàn độc lập khỏi những hạn chế của php.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi nhận được kết quả kép từ truy vấn mysql khi sử dụng các ký tự quốc tế, tức là Å / Ä =A &Ö =O,

  2. Bảng mã ký tự nào tốt nhất cho ngôn ngữ tiếng Nhật cho hiển thị DB, php và html?

  3. PHP / MySQL:Hoạt động / lưu trữ tiền tốt nhất?

  4. Việc đặt lại AUTO_INCREMENT mất nhiều thời gian trong MySQL

  5. CDbCommand ::fetchColumn () không thành công:SQLSTATE [HY000]:Lỗi chung:2014 Không thể thực hiện các truy vấn trong khi các truy vấn không có bộ đệm khác đang hoạt động