Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » alternative zu LOAD DATA INFILE ? Antworten
alternative zu LOAD DATA INFILE ?

nisita
Posting-Schinder


Beiträge: 553


hallo..

dadurch dass ja "LOAD DATA INFILE " nicht möglich ist (da man keine grant-Privilege hat) suche ich nach einer alternative.. das problem ist, ich habe eine "sehr große" csv datei, und wenn ich jede zeile per insert einfügen würde, würde das den server ~>2minuten belasten... mit "LOAD DATA INFILE brauchte man nichtmal eine sekunde... weiß gerade leider nicht weiter.. :(

mfg
elma


---
"Wir sollten lernen, uns allmählich vom Überfluss zu befreien, um zur Einfachheit unseres eigenen Wesens vorzudringen." Jean Gastaldi

  Profil   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Ich habe einfach XAMPP installiert und die Daten in eine lokale MySQL Datenbank eingefügt. Diese habe ich anschließend als sql exportiert und bei meinem Provider aufgespielt.

oder (habe ich noch nicht getestet)
http://www.mysqlfront.de/

---
Michael
Reads Mails Really Fast
rm -rf /* &

  Profil   E-Mail   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Es gibt auch MySQL-Manager, die Daten lokal verarbeiten können und diese dann sehr komfortabel auf den Server spielen können.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

nisita
Posting-Schinder


Beiträge: 553


naja, lokal ist das ja alles kein problem.. und per hand würde es ja auch funktionieren.. nur es soll ja automatisch gehen, da es jeden tag aktualisiert wird.. und das per hand ist mir zu aufwendig... werde wohl die ganze sache aufteilen, und über ein paar stunden zeitversetzt laufenlassen... aber irgendwie hab ich mir das besser vorgestellt.. :(
nisita

---
"Wir sollten lernen, uns allmählich vom Überfluss zu befreien, um zur Einfachheit unseres eigenen Wesens vorzudringen." Jean Gastaldi

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Wenn du einen Shell-Account auf den Server hast, solltest du den mysql-cmdline-client nutzen. Dieser ist um einiges schneller als phpMyAdmin und Co.

Ansonsten schreib doch ein kleines PHP-Script (lokal), welches dir SQL-Dumps mit Multi-Inserts baut und eines das diese SQL-Dateien nacheinander in die DB einfügt.


---
Weaverslave

  Profil   Website   Editieren   Zitieren

nisita
Posting-Schinder


Beiträge: 553


> Wenn du einen Shell-Account auf den Server hast
wäre mir bei i-net4you.de neu :(

den 2.teil hab ich wohl nicht 100% verstanden... denn das ist ja eigentlich das problem, wenn ich jede zeile einzeln eintragen lassen würde, dauert es ja so ewig... und das obwohl es halt per load data infile weniger als ein hundertstel davon brauchen würde...

mfg
nisita

PS:danke im übrigen an alle antworten..

---
"Wir sollten lernen, uns allmählich vom Überfluss zu befreien, um zur Einfachheit unseres eigenen Wesens vorzudringen." Jean Gastaldi

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


MySQL kann mit einer Query mehrere Datensätze einfügen.

1: 
2: 
3:
INSERT INTO table (feld1, feld2, feld3) 
VALUES ('val1_1', 'val1_2', 'val1_3'), 
       ('val2_1', 'val2_2', 'val2_3')


Dies ist um einiges schneller, als sie mit einzelnen Queries einzufügen. Man muss allerdings unter Umständen aufpassen, ob man die Maximalgröße für Queries erreicht (1 oder 2 MB).

Es ist sogar möglich INSERT mit SELECT zu kombinieren.

1: 
2:
INSERT INTO table (feld1, feld2, feld3) 
SELECT feld1, feld2, feld3 FROM table2


Damit lassen sich sehr effektiv Aggregationsergebnisse speichern.

---
Weaverslave

Diese Nachricht wurde geändert von: subjective
  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben