40000 sql befehle ausführen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
studentatommi
Mitglied
Beiträge: 11
Registriert: 03.01.2005 20:04

40000 sql befehle ausführen

Beitrag 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
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
studentatommi
Mitglied
Beiträge: 11
Registriert: 03.01.2005 20:04

Beitrag 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?
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

wenn's schon fertige statements sind:
mysql database < insert.txt
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Seether
Mitglied
Beiträge: 1446
Registriert: 10.10.2002 23:42

Beitrag 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.
studentatommi
Mitglied
Beiträge: 11
Registriert: 03.01.2005 20:04

Beitrag 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
Seether
Mitglied
Beiträge: 1446
Registriert: 10.10.2002 23:42

Beitrag von Seether »

mysql db_name < backup-file.sql

Denk an das < oder >


S.
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag 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
Seether
Mitglied
Beiträge: 1446
Registriert: 10.10.2002 23:42

Beitrag von Seether »

Kannst es auch so versuchen:

Code: Alles auswählen

exec("mysql < backup.sql"); 
Damit hat das einflegen einer 160mb großen Datei paar Sekunden gedauert. Via Bigdump waren es einige Minuten.


S.
Antworten

Zurück zu „Coding & Technik“