So fragen Sie schnell 10 Millionen Datensätze in MySQL ab

So fragen Sie schnell 10 Millionen Datensätze in MySQL ab

Normale Paging-Abfrage

Wenn wir in unserer täglichen Arbeit auf Big Data-Abfragen stoßen, besteht unsere erste Reaktion darin, Paging-Abfragen zu verwenden.

MySQL unterstützt die Limit-Anweisung, um eine bestimmte Anzahl von Daten auszuwählen, während Oracle rownum verwenden kann, um auszuwählen

Die MySQL-Paging-Abfrageanweisung lautet wie folgt:

SELECT * FROM Tabelle LIMIT [Offset,] Zeilen | Zeilen OFFSET Offset
  • Der erste Parameter wird verwendet, um den Offset der ersten zurückgegebenen Datensatzzeile anzugeben.
  • Der zweite Parameter gibt die maximale Anzahl der zurückzugebenden Zeilen an.
    • Bei gleichem Offset dauert es umso länger, je größer die Datenmenge ist
    • Bei gleicher Datenmenge gilt: Je größer der Offset, desto länger dauert es.

So optimieren Sie

Aus der obigen Zusammenfassung können wir deutlich erkennen, dass die Abfragezeit bei großem Offset und großer Datenmenge immer noch recht lang ist. Daher werden wir mit der Optimierung dieser beiden Typen beginnen.

Großer Versatz

Unterabfrage verwenden

Wir können zuerst die ID der Offsetposition lokalisieren und dann die Daten abfragen

wähle * ab Testgrenze 1000000,10
wähle die ID aus dem Testlimit 1000000,1
Wählen Sie * aus Test, wobei ID>=(Wählen Sie ID aus Testlimit 1000000,1)Limit 10

Durch Ausführung können wir feststellen, dass die erste am längsten dauert, die dritte etwas besser ist als die erste und die Unterabfrage bei Verwendung des Index schneller ist.

Dies gilt jedoch nur für Fälle, in denen die ID erhöht wird

Beschränkung der Verwendungs-ID

Diese Methode hat höhere Anforderungen. Die ID muss kontinuierlich ansteigen, und der Bereich der ID muss berechnet werden, und dann wird „zwischen“ verwendet. Das SQL lautet wie folgt:

Wählen Sie * aus dem Test, wobei die ID zwischen 1000000 und 1000100 liegt, Grenze 100;
wähle * aus Test, wobei ID>=1000000 Limit 100

Ergebnisse liegen schnell vor

Hier wird „Limit“ verwendet, um die Anzahl der Einträge zu begrenzen, und es wird kein Offset verwendet.

Optimierung des Problems großer Datenmengen

  • Die zurückgegebene Datenmenge wirkt sich auch direkt auf die Geschwindigkeit aus
  • Durch die Reduzierung unnötiger Spalten wird die Abfrageeffizienz erheblich verbessert

Dies ist das Ende dieses Artikels zum schnellen Abfragen von 10 Millionen Datensätzen in MySQL. Weitere Informationen zur schnellen MySQL-Abfrage finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der MySQL-Datenbank mit zig Millionen Datenabfragen und -speicherungen
  • Optimierung der Abfragegeschwindigkeit von MySQL mit mehreren zehn Millionen Daten mithilfe von Indizes
  • Zusammenfassung der Wissenspunkte zur SQL-Abfrageoptimierung für MySQL-Big Data im zweistelligen Millionenbereich
  • Detaillierte Erläuterung von 30 SQL-Abfrageoptimierungstechniken für MySQL-Zehnmillionen großer Datenmengen
  • Optimierung der Leistung von Paging-Abfragen für MySQL mit mehreren zehn Millionen Daten
  • Detaillierte Erläuterung des Batch-Abfrage-Entwurfsmusters für MySQL-Sharding zur verteilten Speicherung von Millionen von Datensätzen

<<:  Detaillierte Erläuterung, wie Vue Werte zurückgibt, um Formulare dynamisch zu generieren und Daten zu übermitteln

>>:  Zusammenfassung der Verwendung des CSS-Bereichs (Stilaufteilung)

Artikel empfehlen

Eine kurze Analyse kontrollierter und unkontrollierter Komponenten in React

Inhaltsverzeichnis Unkontrollierte Komponenten Ko...

Detaillierte Erklärung des HTML-Bereichs-Tags

Der <area>-Tag definiert einen Bereich in e...

Bringen Sie Ihnen bei, wie Sie eine Reaktion aus HTML implementieren

Was ist React React ist eine einfache JavaScript-...

Detaillierte Beschreibung der HTML-Tabellenrahmensteuerung

Nur den oberen Rand anzeigen <table frame=above...

Vue-Beispielcode zur einfachen Implementierung von virtuellem Scrollen

Inhaltsverzeichnis Vorwort Rollprinzip erreichen ...

Implementierung der Installation und Deinstallation von CUDA und CUDNN in Ubuntu

Inhaltsverzeichnis Vorwort Installieren des Grafi...

So blockieren Sie IP und IP-Bereich in Nginx

Vorne geschrieben Nginx ist nicht nur ein Reverse...

Lösung für das Problem, dass MySQL Daten sehr langsam löscht und einfügt

Wenn ein Unternehmensentwickler eine Insert-Anwei...

XHTML-Erste-Schritte-Tutorial: Was ist XHTML?

Was ist HTML? Um es einfach auszudrücken: HTML wi...

Javascript-Grundlagen zu integrierten Objekten

Inhaltsverzeichnis 1. Einführung in integrierte O...

Beispielcode zur Implementierung eines Foto-Stacking-Effekts mit CSS

Ergebnisse erzielen Schritt 1. Ursprüngliche inde...