Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zaimportować ponad 100000 rekordów do bazy mysql?

Komunikat o błędzie jest dość jasny i wskazuje, na czym polega problem:ograniczenie czasu wykonania w środowisku php. Tak więc niektóre sposoby rozwiązania tego problemu są oczywiste:

  1. zwiększ limit czasu swojego środowiska

Możesz to zrobić, podnosząc limit w konfiguracji php lub, jeśli jest to dozwolone, dynamicznie zwiększając go w skrypcie importu. Czyli coś takiego jak ini_set('max_execution_time', 3000) . Obie opcje są udokumentowane. Dokumentacja php powinna zawsze bądź pierwszą lokalizacją, od której powinieneś zacząć szukać odpowiedzi na takie pytanie.

  1. użyj innego środowiska php

Zazwyczaj takie ograniczenie jest wybierane dla środowiska internetowego, aby zmniejszyć ryzyko obsługi żądań od kogokolwiek tam. Jednak nic nie przemawia przeciwko używaniu innej konfiguracji dla innego środowiska. Zadania importu zazwyczaj nie przetwarzane przy użyciu żądań internetowych, ale przy użyciu php w wierszu poleceń (CLI). W takich przypadkach stosuje się zwykle oddzielną konfigurację. Znowu jest to udokumentowane. To jest to, czego możesz użyć tutaj, aby skonfigurować oba środowiska różniące się od siebie zgodnie z Twoimi potrzebami. Jednak do tego potrzebny jest dostęp do php na CLI. To nie jest problem w twoim własnym systemie, ale zwykle nie jest dostępny w tanich usługach hostingowych.

  1. Podziel import na mniejsze porcje

Ponieważ importowane dane są przechowywane w pliku sql, a więc prostym pliku tekstowym, możesz użyć dowolnego zwykłego edytora tekstu, aby zmodyfikować ten plik. Uwaga:edytor tekstu, nie edytor tekstu. Możesz podzielić dużą INSERT oświadczenie zawarte w nim na kilka kawałków. Składnia jest dość oczywista.

  1. użyj wielu oddzielnych instrukcji insert zamiast jednej dużej

W zależności od narzędzia, którego używasz do utworzenia pliku zrzutu, który próbujesz zaimportować, masz teraz opcję utworzenia zrzutu w taki sposób, aby używał wielu oddzielnych INSERT oświadczenia (po jednym na każdy wiersz) zamiast jednego dużego, połączonego. mysqldump na przykład oferuje --skip-extended-insert flaga za to. W przypadku takiego pliku zrzutu podzielenie importu na kilka mniejszych części przez proste podzielenie pliku jest trywialne.

  1. całkowicie pomiń php przy imporcie

Jeśli masz bezpośredni dostęp do serwera bazy danych (w tym przypadku MySQL), możesz po prostu wchodzić z nim bezpośrednio w interakcję zamiast używać phpMyAdmin narzędzie pomiędzy. Możesz po prostu załadować plik zrzutu bezpośrednio za pomocą MySQLs source Komenda. W ten sposób jesteś całkowicie niezależny od ograniczeń 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. Nie działa migracja oleju FuelPHP

  2. Uzyskaj posty WP oparte na wielu parach meta klucz/wartość za pomocą IN

  3. Jak działa funkcja REGEX_REPLACE() w MySQL

  4. Jak zainstalować MySQL w systemie Windows 10? – Twoje kompleksowe rozwiązanie do instalacji MySQL

  5. Wyślij aktualne współrzędne GPS do bazy danych mySQL za pomocą google maps api