Wie füge ich beispielsweise 100 000 Zeilen in MySQL-Tabelle mit einer einzigen Abfrage?Wie füge ich eine große Anzahl von Zeilen in MySQL ein?
Antwort
Sie können nicht, soweit ich weiß. Sie werden eine Schleife benötigen.
Sie können eine Stapeleinfügung mit der INSERT-Anweisung ausführen, aber Ihre Abfrage darf nicht größer als (geringfügig kleiner als) max_allowed_packet sein.
Für 100k Zeilen, abhängig von der Größe der Zeilen, werden Sie wahrscheinlich überschreiten.
Ein Weg wäre, es in mehrere Stücke aufzuteilen. Dies ist wahrscheinlich eine gute Idee.
Alternativ können Sie LOAD DATA INFILE (oder LOAD DATA LOCAL INFILE) zum Laden von einer tabstoppgetrennten (oder anderen begrenzten) Datei verwenden. Weitere Informationen finden Sie in der Dokumentation.
LOAD DATA unterliegt nicht dem max_allowed_packet-Limit.
insert into $table values (1, a, b), (2, c, d), (3, e, f);
Das führt eine Einfügung von 3 Reihen durch. Fahren Sie bei Bedarf fort, um 100.000 zu erreichen. Ich mache Blöcke von ~ 1000 auf diese Weise, wenn ich ETL arbeite.
Wenn Ihre Daten statisch in einer Datei ist, es die Umwandlung und Belastungsdaten infile verwendet, wird die beste Methode sein, aber ich vermute, Sie fragen, weil Sie etwas Ähnliches tun.
Beachten Sie auch, was jemand anderes über die max_allowed_packet-Größe gesagt hat, die die Länge Ihrer Abfrage begrenzt.
Versuchen Sie LoadFile() oder konvertieren Sie Ihre Daten in XML-Datei und verwenden Sie dann laden und extrahieren() -Funktion, um Daten in MySQL-Datenbank zu laden.
Dies ist eine Abfrage und schnellste Option,
Auch ich das gleiche mache, hatte ich Dateien, wenn 1,5 GB um Millionen von Zeilen. Ich habe beide Option in meinem Fall verwendet.
- 1. Tabellenentwurfsoptionen für eine große Anzahl von Zeilen?
- 2. Wie füge ich Zeilen in MySQL zusammen?
- 3. Wie füge ich mehrere Zeilen von Daten in eine MySQL-Tabelle mit PHP ein?
- 4. Eine unbekannte Anzahl von Zeilen in eine MySQL-Datenbank einfügen
- 5. Wie füge ich eine multiple Tabelle in mysql ein?
- 6. Wie füge ich eine große Anzahl von Befehlen an GNU Parallel?
- 7. MySQL SELECT alles in eine große Zeichenfolge (Spalten und Zeilen)
- 8. MySQL - Wie paginiert man durch eine bestimmte Anzahl von Zeilen?
- 9. Wie kann ich eine große Anzahl von Zeilen löschen, ohne die Benutzeroberfläche einzufrieren?
- 10. Wie eine große Anzahl von Commits rebase
- 11. Wie füge ich Daten von mysql in die Combobox ein?
- 12. Abrufen nur eine feste Anzahl von Zeilen in MySQL
- 13. Wie kann ich eine große Anzahl von Dateien zyklisch durchlaufen?
- 14. Wie füge ich Datum zu MySQL von HTML Eingabe ein?
- 15. Wie füge ich ein Datum in eine DATETIME-Spalte ein?
- 16. Große Anzahl von Beispieldokumenten
- 17. Wie behandelt man eine große Anzahl von Ausnahmen in Java?
- 18. Batch löscht eine große Anzahl von Dateien
- 19. Schleifen durch eine große Anzahl von Datenbankzeilen in Yii2
- 20. Eine große Anzahl von sp_counted_impl_p Objekten
- 21. Wie füge ich eine Zeile von Daten in meine MySQL-Tabelle von der Kommandozeile aus ein?
- 22. Genaue Anzahl aller Zeilen in MySQL-Datenbank
- 23. Wie füge ich Sonderzeichen in MySQL ein mit Java
- 24. Wie eine große Anzahl von Zeilen von mongodb mit node.js HTTP-Server zurückgegeben werden?
- 25. Datenstruktur für eine große Anzahl von Mustern
- 26. MYSQL - Anzahl der Zeilen in jeder Tabelle
- 27. Kürzungscode für eine große Anzahl von Textfeldern
- 28. Handle eine große Anzahl von Dateien
- 29. Eine große Anzahl von Dateien schnell lesen
- 30. Datenbank für große Anzahl von 1kB Daten Chunks (MySQL?)
Die offensichtliche Frage ist "von was?". Wenn die Antwort aus dem Speicher stammt, sollten Sie eine SQL-Datei sehr sorgfältig eingeben. Ansonsten verwenden Sie eine geeignete Sprache und Umgebung. –