Weitergabe von SQL-Optimierungserfahrungen, wenn der Offset beim MySQL-Paging zu groß ist

Weitergabe von SQL-Optimierungserfahrungen, wenn der Offset beim MySQL-Paging zu groß ist

Finden Sie das Problem

Wenn wir den Inhalt in einer Liste anzeigen, treten zwangsläufig Paging-Probleme auf, da die Anzahl der Inhalte in der Liste zwar groß sein kann, die Größe der Schnittstelle, die der Benutzer gleichzeitig sehen kann, jedoch begrenzt ist. Es ist unmöglich, den gesamten Inhalt in einer Schnittstelle anzuzeigen. Wenn zu viele Daten gleichzeitig vom Backend abgerufen werden, wird das Backend zusätzlich belastet.

Normalerweise wird für Paging-Abfragen die folgende Anweisung verwendet:

WÄHLEN
*
FROM-Tabelle
wobei Bedingung1 = 0
und Bedingung2 = 0
und Bedingung3 = -1
und Bedingung4 = -1
Sortieren nach ID aufsteigend
GRENZE 2000 OFFSET 50000

Wenn der Offset besonders groß ist, wird die Ausführungseffizienz dieser Anweisung erheblich reduziert, und die Effizienz nimmt mit zunehmendem Offset ab.

Die Gründe sind:

MySQL überspringt die Offsetzeile nicht, sondern nimmt den Offset + N Zeilen, gibt dann die vorherige Offsetzeile zurück und gibt N Zeilen zurück. Wenn der Offset besonders groß ist und die einzelnen Daten ebenfalls groß sind, ist es umso langsamer, je mehr Daten bei jeder Abfrage abgerufen werden müssen.

Optimierungsplan:

WÄHLEN
*
FROM-Tabelle
VERBINDEN
(ID aus Tabelle auswählen
wobei Bedingung1 = 0
und Bedingung2 = 0
und Bedingung3 = -1
und Bedingung4 = -1
Sortieren nach ID aufsteigend
GRENZE 2000 OFFSET 50000)
als tmp using(id)

oder

Wählen Sie a.* aus Tabelle a, 
(ID aus Tabelle auswählen
wobei Bedingung1 = 0
und Bedingung2 = 0
und Bedingung3 = -1
und Bedingung4 = -1
Sortieren nach ID aufsteigend
GRENZE 2000 OFFSET 50000) b 
wobei a.id = b.id

Holen Sie sich zuerst die Primärschlüsselliste und fragen Sie dann die Zieldaten nach dem Primärschlüssel ab. Selbst wenn der Versatz groß ist, werden viele Primärschlüssel statt aller Felddaten abgerufen. Relativ gesehen wird die Effizienz erheblich verbessert.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So verwenden Sie das MySQL-Limit und lösen das Problem großer Paging-Aufgaben
  • Eine einfache Paging-Optimierungsmethode für MySQL im Fall von Big Data
  • MySQL-Paging-Optimierung auf Millionenebene (MySQL-Fast-Paging auf zehn Millionen Ebenen)
  • Optimierungsmethode für MySQL-Paging-Grenzgeschwindigkeit ist zu langsam
  • MySQL begrenzt die gemeinsame Nutzung von Paging-Optimierungsmethoden
  • MySQL-Lösung zur Datenpaging-Abfrageoptimierung auf Millionenebene
  • Optimieren Sie das MySQL-Limit, verweisen Sie auf den zusammengesetzten Index der schnellen Paging von einer Million auf zehn Millionen und wenden Sie ihn auf ein leichtes Framework an
  • Analyse der MySQL-Paging-Optimierung
  • Optimierung der Leistung von Paging-Abfragen für MySQL mit mehreren zehn Millionen Daten
  • Tutorial zur MySQL-Optimierung: Große Paging-Abfrage

<<:  So stellen Sie versehentlich gelöschte Nachrichtendateien unter Linux wieder her

>>:  Detaillierte Erläuterung der Fallstricke von add_header im Nginx-Konfigurationstutorial

Artikel empfehlen

Ausführliche Erläuterung des MySQL-Gemeinschaftsindex und des eindeutigen Index

Szenario 1. Pflegen Sie ein Bürgersystem mit eine...

CSS3 realisiert den roten Umschlag-Shaking-Effekt

Es besteht die Anforderung, den Schütteleffekt de...

Detaillierte Erläuterung des CocosCreator-Projektstrukturmechanismus

Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...

Zusammenfassung der Probleme bei der Installation von MySQL 5.7.19 unter Linux

Als ich MySQL zum ersten Mal auf meiner virtuelle...

Detaillierte Diskussion über Speicher und Variablenspeicher in JS

Inhaltsverzeichnis Vorwort JS Magische Zahl Numme...

Lösung für den Konflikt zwischen zwei Registerkartennavigation in HTML

Beginnen wir mit einer Beschreibung des Problems:...

So aktivieren Sie Fernzugriffsberechtigungen in MySQL

1. Melden Sie sich bei der MySQL-Datenbank an mys...

Front-End-Statusverwaltung (Teil 2)

Inhaltsverzeichnis 1. Wiederholen 1.1. Shop (Bibl...

So speichern Sie Bilder in MySQL

1 Einleitung Beim Gestalten einer Datenbank ist e...