Heim > Datenbank > MySQL-Tutorial > Wie rufe ich große MySQL-Auswahlen in Blöcken ab, um die Leistung zu verbessern?

Wie rufe ich große MySQL-Auswahlen in Blöcken ab, um die Leistung zu verbessern?

Linda Hamilton
Freigeben: 2024-10-26 06:11:31
Original
909 Leute haben es durchsucht

How to Retrieve Large MySQL Selects in Chunks for Enhanced Performance?

Abrufen großer MySQL-Auswahlen in Blöcken für verbesserte Leistung

Beim Umgang mit riesigen Ergebnismengen von mehr als 70 Millionen Zeilen in MySQL, Abrufen aller Daten bei Einmaliges kann zu einer Erschöpfung des Gedächtnisses führen. Um dieses Problem zu lösen, ist die Optimierung des Datenabrufprozesses durch Chunking von entscheidender Bedeutung.

Die LIMIT-Klausel bietet eine Lösung für den stapelweisen Abruf von Daten. Durch Angabe der Startzeile und der maximalen Anzahl von Zeilen in der LIMIT-Anweisung können Sie Daten in kleineren Blöcken abrufen. Zum Beispiel:

SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000
Nach dem Login kopieren

Diese Abfrage ruft die ersten 1.000 Zeilen ab, wobei 0 die nullindizierte Startzeile und 1000 die maximale Anzahl von Zeilen ist. Um mit dem Abrufen nachfolgender Blöcke fortzufahren, können Sie die Startzeile entsprechend erhöhen:

SELECT * FROM MyTable ORDER BY whatever LIMIT 1000,1000 -- rows 1,001 - 2,000
SELECT * FROM MyTable ORDER BY whatever LIMIT 2000,1000 -- rows 2,001 - 3,000
Nach dem Login kopieren

Um jedoch zu verhindern, dass sich die zugrunde liegende Tabelle während des Datenabrufs ändert, wird empfohlen, die Ergebnisse in einer temporären Tabelle zu speichern:

CREATE TEMPORARY TABLE MyChunkedResult AS (
  SELECT *
  FROM MyTable
  ORDER BY whatever
);
Nach dem Login kopieren

Nachdem Sie die temporäre Tabelle erstellt haben, können Sie Datenblöcke daraus abrufen:

SELECT * FROM MyChunkedResult LIMIT 0, 1000;
SELECT * FROM MyChunkedResult LIMIT 1000,1000;
SELECT * FROM MyChunkedResult LIMIT 2000,1000;
Nach dem Login kopieren

Die Wahl der Blockgröße hängt vom jeweiligen Anwendungsfall ab und es wird empfohlen, mit größeren Blöcken zu experimentieren Leistungsoptimierung. Denken Sie außerdem daran, die temporäre Tabelle zu löschen, wenn der Vorgang abgeschlossen ist:

DROP TEMPORARY TABLE MyChunkedResult;
Nach dem Login kopieren

Indem Sie diese Schritte befolgen, können Sie große MySQL-Auswahlergebnisse effektiv in Blöcken abrufen und so die Speichernutzung und die Gesamtleistung verbessern.

Das obige ist der detaillierte Inhalt vonWie rufe ich große MySQL-Auswahlen in Blöcken ab, um die Leistung zu verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage