Wenn die Datenmenge in MySQL groß ist, wird die Seitenbegrenzung verwendet. Mit zunehmender Seitenzahl nimmt die Abfrageeffizienz ab. Experiment 1. Verwenden Sie direkt die Paging-Anweisung „Limit Start, Count“: Wenn die Startseite klein ist, treten bei der Abfrage keine Leistungsprobleme auf. Betrachten wir die Ausführungszeit der Seitenumbrüche von 10, 100, 1000 und 10000 (20 Datensätze pro Seite) wie folgt: Wählen Sie * ab Bestelllimit 10, 20 0,016 Sekunden. Wählen Sie * ab Bestelllimit 100, 20 0,016 Sekunden. Wählen Sie * ab Bestelllimit 1000, 20 0,047 Sekunden. Wählen Sie * ab Bestelllimit 10000, 20 0,094 Sekunden. Wir haben gesehen, dass mit zunehmender Anzahl der Startdatensätze auch die Zeit zunimmt. Dies zeigt, dass das Paging-Anweisungslimit eng mit der Startseitennummer zusammenhängt. Ändern wir also den Startdatensatz auf 40 W und sehen wir weiter. Schauen wir uns den Zeitpunkt an, als wir die letzte Seite mit Aufzeichnungen entnommen haben. Offensichtlich ist diese Zeit unerträglich. Daraus können wir auch zwei Dinge schließen: 1) Die Abfragezeit der Grenzwertanweisung ist proportional zur Position des Startdatensatzes 2) Die MySQL-Limit-Anweisung ist sehr praktisch, aber nicht für die direkte Verwendung bei Tabellen mit vielen Datensätzen geeignet. 2. Leistungsoptimierungsmethode für das Problem des begrenzten Paging Verwenden Sie den überdeckenden Index der Tabelle, um Paging-Abfragen zu beschleunigen Wir alle wissen, dass die Abfrage sehr schnell ist, wenn die Anweisung, die eine Indexabfrage verwendet, nur diese Indexspalte (den abdeckenden Index) enthält. Da die Indexsuche über einen optimierten Algorithmus verfügt und sich die Daten im Abfrageindex befinden, muss nicht nach der relevanten Datenadresse gesucht werden, was viel Zeit spart. Darüber hinaus verfügt MySQL auch über einen zugehörigen Index-Cache. Die Wirkung ist besser, wenn der Cache bei hoher Parallelität verwendet wird. In unserem Beispiel wissen wir, dass das ID-Feld der Primärschlüssel ist, daher ist der Standard-Primärschlüsselindex eingeschlossen. Sehen wir uns nun an, wie die Abfrage mit dem überdeckenden Index funktioniert: Diesmal fragen wir die Daten der letzten Seite ab (mithilfe eines überdeckenden Index, der nur die Spalte „id“ enthält) und zwar wie folgt: Im Vergleich zu den 37,44 Sekunden, die zum Abfragen aller Spalten benötigt werden, ist die Geschwindigkeit um mehr als das Hundertfache erhöht. Wenn wir auch alle Spalten abfragen möchten, gibt es zwei Möglichkeiten: Eine ist das Formular „id>=“, die andere ist die Verwendung von „join“, siehe die tatsächliche Situation: Die Abfragezeit beträgt 0,2 Sekunden, was ein qualitativer Sprung ist, haha Eine andere Art zu schreiben Auch die Abfragezeit ist sehr kurz Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung des adaptiven Anpassungsproblems des Vue-Mobilterminals
>>: Detaillierte Erläuterung der Systemeingabe- und -ausgabeverwaltung in Linux
Deinstallieren Sie tomcat9 1. Da die Installation...
Umgebungskonfiguration 1: Installieren Sie MySQL ...
1. Die Verwendung von Docker Compose ist der Verw...
In diesem Artikel wird der spezifische Code von v...
Inhaltsverzeichnis Funktionen auf Blockebene Ände...
1. Einleitung Das Thema, ob Fremdschlüsseleinschr...
Inhaltsverzeichnis Vorwort Ajax seriell und paral...
Code kopieren Der Code lautet wie folgt: Untersch...
CSS3 erreicht coole 3D-Rotationsperspektive 3D-An...
Heute werden wir einen einfachen Herzschlageffekt...
Inhaltsverzeichnis 1. Homepage-Erstellung 1. Prod...
Xhtml hat viele Tags, die nicht häufig verwendet w...
Es ist ganz einfach, Nachrichten an andere Benutz...
Methode 1: var a = [1,2,3]; var b=[4,5] a = a.con...
Vorwort Viele Freunde, die gerade mit mobilen End...