Ich habe mit mehr ausgewählt als
70 Millionen Zeilen
Ich möchte die ausgewählten Daten in der großen csv-Datei auf win2012 R2 speichern
F: Wie kann ich die Daten von MySQL durch Chanks für eine bessere Leistung abrufen?
weil, wenn ich versuche, eine große Auswahl zu speichern, habe ich
Fehler wegen zu wenig Arbeitsspeichers
Danke für jede Hilfe!
Sie könnten versuchen, die Funktion LIMIT
zu verwenden. Wenn Sie dies tun:
Sie erhalten die ersten 1.000 Zeilen. Der erste LIMIT
-Wert (0) definiert die Startzeile in der Ergebnismenge. Es ist null-indexiert, also bedeutet 0 "die erste Reihe". Der zweite LIMIT
Wert ist die maximale Anzahl der abzurufenden Zeilen. Um die nächsten 1.000 Sätze zu erhalten, mach folgendes:
Und so weiter. Wenn SELECT
keine Zeilen zurückgibt, sind Sie fertig.
Dies reicht jedoch nicht aus, da alle Änderungen, die während der Verarbeitung Ihrer 1K-Zeilen gleichzeitig an der Tabelle vorgenommen werden, die Reihenfolge verlassen. Um die Ergebnisse rechtzeitig einzufrieren, beginnen Sie mit der Abfrage der Ergebnisse in einer temporären Tabelle:
%Vor%Randnotiz: Es ist eine gute Idee, sicherzustellen, dass die temporäre Tabelle nicht vorher existiert:
%Vor%Sobald die temporäre Tabelle vorhanden ist, ziehen Sie auf jeden Fall die Zeilenblöcke von dort:
%Vor%Ich überlasse es Ihnen, die Logik zu erstellen, die nach jedem Chunk den Grenzwert berechnet und nach dem Ende der Ergebnisse sucht. Ich würde auch viel größere Stücke als 1.000 Datensätze empfehlen; es ist nur eine Nummer, die ich aus der Luft ausgesucht habe.
Schließlich ist es eine gute Form, die temporäre Tabelle zu löschen, wenn Sie fertig sind:
%Vor%