Beispielanalyse für MySQL Oracle- und SQL Server-Paging-Abfragen

Beispielanalyse für MySQL Oracle- und SQL Server-Paging-Abfragen

Ich habe vor Kurzem eine einfache Studie zur Datenpaginierungsabfrage von Oracle, MySQL und SQL Server 2005 durchgeführt und die jeweiligen Abfrageanweisungen veröffentlicht, damit jeder sie lernen kann ...

(I) Paging-Abfrage von MySQL

Die Paging-Abfrage von MySQL ist die einfachste. Sie können das Schlüsselwort limit für die Abfrage verwenden. Die allgemeine Abfrageanweisung lautet:

Wählen Sie o.*from(sql) o limitieren Sie den ersten Index, die Seitengröße

Wie im folgenden Screenshot gezeigt, beträgt die Anzahl der pro Seite angezeigten Datensätze 20:

Abfrage (1-20) dieser 20 Datensätze

Abfrage dieser 20 Datensätze (21-40)


Die MySQL-Paging-Abfrage ist so einfach …

(II) Paging-Abfrage von sqlserver2005

Vor SQL Server 2005 wurde das Schlüsselwort top verwendet, um Paging-Abfragen zu implementieren, aber die Effizienz war gering. In SQL Server 2005 und späteren Versionen wird die analytische Funktion row_number() verwendet, um Paging-Abfragen abzuschließen, was die Effizienz erheblich verbessert hat. Die SQL-Anweisung ist jedoch komplizierter. Die allgemeine Formel der Paging-Abfrage lautet wie folgt:

selecttoppageSizeo.*von(selectrow_number()über(orderbyorderColumn)asrownumber,*von(sql)asowhererownumber>ersterIndex;

Schauen Sie sich den Screenshot unten an, es werden 20 Datensätze pro Seite angezeigt:

Abfrage (1-20) dieser 20 Datensätze

Abfrage dieser 20 Datensätze (21-40)

Wenn man die row_number-Funktion in SQL Server kennt, ist die Paginierung einfach ...

(III) Oracle-Paging-Abfrage

Als nächstes konzentrieren wir uns auf die Paging-Abfrage von Oracle. Oracle verfügt über relativ mehr Paging-Abfragemethoden, ROWNUM und row_number(). Heute konzentrieren wir uns hauptsächlich auf zwei Paging-Abfrageanweisungen mit etwas besserer Effizienz.

①ROWNUM-Abfragepaging-Formel:

select*from(selecta.*,ROWNUMrn from(sql)a wobeiROWNUM<=(ersterIndex+Seitengröße))wobeirn>ersterIndex

Der folgende Screenshot zeigt eine auf diese Weise ausgeführte Abfrage:

Abfrage (1-21) dieser 20 Datensätze***** (es gibt keinen Datensatz mit ID=6, daher ist die maximal abgefragte ID 21)



Abfrage (22-41) dieser 20 Datensätze***** (es gibt keinen Datensatz mit ID=6, daher ist die erste abzufragende ID 22 und die maximale ID ist 41)

②Paging-Abfragemethode für die Analysefunktion von row_number():

select*from(select*from(selectt.*,row_number()over(orderbyorderColumn)asrownumberfrom(sql)t) p wobeip.rownumber>firstIndex) wobeirownum<=pageSize

Der folgende Screenshot zeigt den Paging-Abfrageeffekt mit row_number():

Abfrage (1-21) dieser 20 Datensätze***** (es gibt keinen Datensatz mit ID=6, daher ist die maximal abgefragte ID 21)



Abfrage (22-41) dieser 20 Datensätze***** (es gibt keinen Datensatz mit ID=6, daher ist die erste abzufragende ID 22 und die maximale ID ist 41)


In der ROWNUM-Abfragemethode gibt es in der SQL-Anweisung zweiter Ebene ein „ where ROWNUM<(firstIndex+pageSize)order by idasc , das (firstIndex+pageSize) Datensätze aus der Datentabelle abfragt. Wenn dieser Wert also sehr klein ist, ist die Effizienz sehr gut. Wenn dieser Wert bei einem großen Datenformat Tausende beträgt, zum Beispiel: select* from wyuse where rownum<(5000) order by idasc , werden zu Beginn 5000 Datensätze ausgewählt und die Effizienz ist natürlich viel langsamer...

Zusammenfassen

Oben ist die Einführung der MySQL Oracle- und SQL Server-Paging-Abfrage durch den Herausgeber. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Lösung für das Paging-Fehlerproblem bei MySQL-Eins-zu-viele-Assoziationsabfragen
  • MySQL-Lösung zur Datenpaging-Abfrageoptimierung auf Millionenebene
  • Optimierung der Leistung von Paging-Abfragen für MySQL mit mehreren zehn Millionen Daten
  • Detaillierte Erläuterung der MySQL-Limitnutzung und Leistungsanalyse von Paging-Abfrageanweisungen
  • Detaillierte Erläuterung der Mysql Limit Paging-Abfrageoptimierung
  • Einführung in die Unterschiede zwischen Paging-Abfrageanweisungen in Oracle, MySQL und SqlServe
  • Detaillierte Erläuterung der Paging-Abfragemethoden in MySQL, MSSQL und Oracle
  • Vergleich zweier Lösungen für Paging-Abfragen in MySQL
  • Beispiele für Paging-Abfragen für drei Datenbanken: Oracle, MySQL und SqlServer
  • Mehrere Implementierungsmethoden sowie Vor- und Nachteile der SQL-Paging-Abfrage in MySQL

<<:  So verwenden Sie die JSZip-Komprimierung in CocosCreator

>>:  Tomcat verwendet Log4j zur Ausgabe des catalina.out-Protokolls

Artikel empfehlen

jQuery simuliert einen Picker, um einen gleitenden Auswahleffekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Vue+Websocket implementiert einfach die Chat-Funktion

In diesem Artikel wird der spezifische Code von V...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17

Funktionen von MySQL: MySQL ist ein relationales ...

Detaillierte Schritte zum Upgrade von mysql8.0.11 auf mysql8.0.17 unter Win2008

Upgrade-Hintergrund: Um die Sicherheitslücke in d...

Anwendungsbeispiele für React Hooks

Inhaltsverzeichnis Ein einfaches Komponentenbeisp...

Beispielcode des Spread-Operators und seiner Anwendung in JavaScript

Der Spread-Operator ermöglicht die Erweiterung ei...

Detaillierte Erklärung der grundlegenden Verwendung des VUE Watch Listener

Inhaltsverzeichnis 1. Der folgende Code ist eine ...

HTML+jQuery zur Implementierung einer einfachen Anmeldeseite

Inhaltsverzeichnis Einführung Öffentlicher Code (...

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11

In diesem Artikel finden Sie das Installations-Tu...

Eine "klassische" Falle der MySQL UPDATE-Anweisung

Inhaltsverzeichnis 1. Problematische SQL-Anweisun...

Detaillierte Schritte zur Installation des NERDTree-Plugins in Vim unter Ubuntu

NERDTree ist ein Dateisystembrowser für Vim. Mit ...