MySQL Import über PHPMyAdmin

Hallo zusammen.

Ich habe 2 Dumps.

Einer mit folgendem Schema:
Dump1 20,5 MB

- DROP TABLE tbl;
- CREATE TABLE tbl;
- INSERT INTO tbl ... VALUES(...);
- ...
- ...
- INSERT INTO tbl ... VALUES(...);

Dump2 7,7 MB

- DROP TABLE tbl
- CREATE TABLE tbl
- INSERT INTO tbl ... VALUES(...),
- (...),
- (...),
- (...);

Der Dump1 mit der „normalen“ Syntax sprich INSERT INTO TBL(bla) VALUES(‚BLA‘); funktioniert beim Import, sprich die 20,5 MB sind in ca. 3 Minuten importiert.

Der Dump2 mit der Kurzform-Insert-Syntax INSERT INTO TBL(bla) VALUES(‚BLA‘),(‚BLA‘),(‚BLA‘); funktioniert nicht beim Import, sprich ich bekomme die bekannte PHP-Fehlermeldung (Fatal error: Maximum execution time of 300 seconds exceeded in /www/phpmyadmin/libraries/import/sql.php on line 118).
Warum das? Der Dump1 ist 20,5 MB groß und funktioniert, die um 66% kleinere Dump2-Datei mit 7,7 MB bringt die Fehlermeldung, siehe oben.

Gruß und bitte um Rat,
Sebastian

PS: Wenn ich von Dump2 nur ca. 50 Zeilen an Inserts importiere, klappts einwandfrei, aber bei knapp 9000 Zeilen erscheint die Fehlermeldung siehe oben.

hi, sicher gibt es da ein prob
>(Fatal error: Maximum execution time of 300 seconds exceeded in >/www/phpmyadmin/libraries/import/sql.php on line 118)

poste doch mal ein paar zeilen inder nähe 118.

mfg dragonk

*gg* Du willst, dass ich dir von PHPMyAdmin Codezeilen poste…??

Mir ist die Fehlermeldung ja klar, jedoch warum läuft das Script mit einer 20MB-Datei schneller als wie mit einer 7,7MB datei?
Komisch oder?

Gruß Sebastian

Hi,

Einfache Atw, großes Prob. ^^

Du wirst einfach ein Opfer des Timeout. Bzw der maximalen Datenmenge pro insert.
Ich hab die Erfahrung gemacht das man nicht über 5.000 gehen sollte, im Netz findest du angaben von 7.500 - 1.000.

ALSO musst du einen Kompromis finden zwischen weniger Daten auf ein Insert und geringerem Speicheraufwand. (Ist von MySql version abhängig, wie viel Data per insert)

Mfg drgonk, hoffe ich konnte dir helfen

Edit: Wenn was falsch war lass ich mich gern von einem Profi berichtigen (Man lernt ja nie aus) ^^ :wink:

Tipp: MySQL-Dumper
Schau dir bitte den MySQL-Dumper an:
http://www.mysqldumper.de

Vielleicht ist dieses Tool genau das Richtige.

Hallo Sebastian,
ich kann dir für solche Probleme den MySQLDumper empfehlen:
http://www.mysqldumper.de/
ein wirkliches tolles Tool. Seitdem ich das bei mir auf dem Server installiert habe, kommen solche Timeout-Probleme nicht mehr vor. Außerdem kann es noch eine ganze Menge anderer nützlicher Sachen, die einem das Leben wirklich erleichtern.

Viele Grüße
Marvin

Durch Internetrecherche habe ich die Lösung für mein Problem gefunden.
Es gibt eine maximale Stringgröße für eine Abfrage und zwar 1 MB. Meine Abfrage war ca. 2,5 MB groß und deshalb wurde das Timeout ausgelöst.

Also immer beachten, wenn INSERTs in Kurzform verwendet werden, beachtet, dass die Abfrage max. 0,99 MB groß|lang ist.

Gruß Sebastian

Danke für deine Antwort der MYSQL-Dumper kenn ich bereits.

Ich verwende es für exec(mysqldump)… :smile: