Ich möchte etwa 50.000 mysql Abfrage für 'Einfügen' in mysql db einfügen, Dafür habe ich 2 Optionen,
1- Importieren Sie die (.sql) Datei direkt: Folgefehler tritt auf "Sie haben wahrscheinlich versucht, eine zu große Datei hochzuladen. Informationen zur Umgehung dieses Limits finden Sie in der Dokumentation."
2- Verwenden Sie PHP-Code, um diese Abfragen in Form von verschiedenen Chunks aus der (.SQL) -Datei einzufügen. Hier ist mein Code:
%Vor%Aber Speichergrößenfehler treten auf, allerdings habe ich Speichergrenzen von 128M auf 256M oder sogar 512M erweitert.
Dann denke ich, dass, wenn ich in der Lage sein würde, eine begrenzte Anzahl von Zeilen aus einer Datei (.sql) zu laden und eine mysql-Abfrage auszuführen, dann könnte es alle Datensätze von der Datei in db importieren. Aber hier habe ich keine Ahnung, wie man mit dem Dateianfangsort bis zum Ende umgehen soll und wie ich den Start- und Endort aktualisieren kann, damit es die zuvor abgerufenen Zeilen nicht aus der .sql-Datei holt.
Anstatt die gesamte Datei in den Speicher zu laden, was bei der Verwendung der Datei getan wird, eine mögliche Lösung wäre es, Zeile für Zeile zu lesen, mit einer Kombination von fopen
, fgets
und fclose
- Die Idee ist, nur das zu lesen, was Sie brauchen, mit den Zeilen umzugehen, die Sie haben, und erst dann die nächsten zu lesen.
Außerdem können Sie sich diese Antwort ansehen: Best Übung: Importieren von mySQL-Datei in PHP; geteilte Abfragen
Es gibt noch keine akzeptierte Antwort, aber einige der gegebenen Antworten könnten Ihnen bereits helfen ...
Verwenden Sie den Befehlszeilenclient, der weitaus effizienter ist und 50K-Einfügungen problemlos verarbeiten sollte:
%Vor%