Seite 1 von 1
40000 sql befehle ausführen
Verfasst: 24.03.2006 10:51
von studentatommi
Hallo,
ich habe in einer Textdatei auf meinem Server ca. 40000 sql befehle stehen, die ich ausführen möchte.
Gibt es irgendeinen Trick, wie ich das ganz schnell machen kann?
thx 4 help
Verfasst: 24.03.2006 11:10
von larsneo
Verfasst: 24.03.2006 11:32
von studentatommi
Okay das sieht ja gut aus mit mysqlimport.
Allerdings versteh ich das nicht genau:
Bei jeder Textdatei, die auf der Kommandozeile angegeben wird, entfernt mysqlimport jegliche Erweiterungen vom Dateinamen und benutzt das Ergebnis, um festzulegen, in welche Tabelle der Dateiinhalt importiert werden soll. Dateien namens patient.txt, patient.text und patient beispielsweise würden alle in eine Tabelle namens patient importiert werden.
Wenn in der Datei jetzt insert befehle stehen, steht doch in jedem sql statement, auf welche tabelle der befehl ausgeführt wird, oder versteh ich das falsch?
Verfasst: 24.03.2006 11:50
von larsneo
wenn's schon fertige statements sind:
mysql database < insert.txt
Verfasst: 24.03.2006 12:45
von Seether
Geht wunderbar, dauert allerdings ne Zeit.
Wie ich gestern festgestellt habe, hat es auch quasi nichts mit der größe der Sql-Datei zu tun. Die phpbb_posts_text war innerhalb von paar Minuten eingespielt, aber die Tabelle der Suchfunktion dauerten ewig. Waren 2,5 Millionen Zeilen oder so. Serverlast ging auf über 200%^^
S.
Verfasst: 24.03.2006 13:18
von studentatommi
mhh irgendwie komm ich damit nicht klar... der schmeisst mir immerwieder die hilfe infos raus...
Was muss ich daran ändern:
mysql -D database -u username -p passwort datei.sql
Verfasst: 24.03.2006 13:33
von Seether
mysql db_name < backup-file.sql
Denk an das < oder >
S.
Verfasst: 24.03.2006 16:18
von Dennis63
Hier ist eine Übersicht von MySQL-Backup-Lösungen. Das einspielen so einer Datei ist ja das gleiche.
KB:mysql_backup
Ich würde BigDump empfehlen. Das ist gut, einfach, läuft auf PHP und zeigt den Fortschritt an, wenn es länger dauern sollte.
Natürlich wäre der PHP-Befehl system() noch besser.
Grüße
Dennis
Verfasst: 25.03.2006 00:14
von Seether
Kannst es auch so versuchen:
Damit hat das einflegen einer 160mb großen Datei paar Sekunden gedauert. Via Bigdump waren es einige Minuten.
S.