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

React Diff-Algorithmus-Quellcodeanalyse

Inhaltsverzeichnis Einzelner Knoten Diff Einzelel...

Vorgang zur Zeitzonenanpassung im Docker-Container

Wie kann ich überprüfen, ob die Zeitzone des Dock...

Implementierung des Vue 3.x-Projekts basierend auf Vite2.x

Erstellen eines Vue 3.x-Projekts npm init @vitejs...

So verwenden Sie den Vue-Filter

Inhaltsverzeichnis Überblick Filter definieren Ve...

Tutorial zur Installation von Nginx in einer Linux-Umgebung

Inhaltsverzeichnis 1. Installieren Sie die erford...

Detaillierte Erklärung des TIMESTAMPDIFF-Falls in MySQL

1. Syntax TIMESTAMPDIFF(Einheit, Beginn, Ende); G...

So konfigurieren Sie die Basic Auth-Anmeldeauthentifizierung in Nginx

Manchmal erstellen wir einen Dateiserver über ngi...

20 Wegweiser auf dem Weg zum exzellenten UI (User Interface)-Designer

Einleitung: Der Interface-Designer Joshua Porter h...

Analyse der Implementierung der Nginx Rush-Kaufstrombegrenzungskonfiguration

Aus geschäftlichen Gründen kommt es häufig zu Eil...

Vue realisiert die Funktion zum Hochladen von Fotos auf den PC

In diesem Artikelbeispiel wird der spezifische Co...

Farbverlauf für HTML-Hintergrund durch CSS erreicht

Screenshots der Effekte: Implementierungscode: Cod...