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

Lösung für das zu langsame Herunterladen des Docker-Images

Der Download des Docker-Images hängt oder ist zu ...

Vue SPA-Lösung zur Optimierung des ersten Bildschirms

Inhaltsverzeichnis Vorwort Optimierung SSR Import...

Meta Viewport ermöglicht die Vollbildanzeige von Webseiten auf dem iPhone

In meiner Verzweiflung dachte ich plötzlich: Wie i...

Eine SQL-Anweisung schließt die MySQL-Deduplizierung ab und behält eine

Als ich vor einigen Tagen an einer Anforderung ar...

Docker-Bindung mit fester IP/Hostübergreifender Container-Gegenzugriffsvorgang

Vorwort Bisher waren statische IPs, die über Pipe...

CSS3 realisiert Partikelanimationseffekte beim Matching von Königen

Beim Codieren werden Sie feststellen, dass viele ...

Webdesign-Tutorial (5): Visuelles Webdesign

<br />Vorheriger Artikel: Webdesign-Tutorial...

Detaillierte Erklärung der MySQL-Datenbank-Trigger

Inhaltsverzeichnis 1 Einleitung 2 Trigger-Einführ...

Offlineinstallation von Centos7.2 mysql5.7.18.tar.gz

Aufgrund der Netzwerkisolation kann MySQL nicht m...

Tiefes Verständnis der JavaScript-Syntax und Codestruktur

Inhaltsverzeichnis Überblick Funktionalität und L...

CSS-Code zum Anordnen von Fotos in Moments

Zunächst können Sie Moments öffnen und mehrere La...

Verwenden Sie vue2+elementui für Hover-Prompts

Die Hover-Prompts von Vue2+elementui sind in exte...