【SQL】 Zusammenfassung der SQL-Paging-Abfragen Während des Entwicklungsprozesses tritt häufig die Notwendigkeit einer Paginierung auf. Lassen Sie uns dies heute hier zusammenfassen. Vereinfacht ausgedrückt gibt es zwei Methoden: Eine besteht in der Kontrolle an der Quelle, die andere in der Kontrolle am Ende. Die Quellcodeverwaltung platziert die Paging-Logik in der SQL-Ebene; die Clientsteuerung ruft alle Daten auf einmal ab und platziert die Paging-Logik in der Benutzeroberfläche (z. B. GridView). Offensichtlich ist die On-End-Steuerung weniger schwierig zu entwickeln und eignet sich für kleine Datenmengen, aber Leistung und IO-Verbrauch werden bei steigendem Datenvolumen inakzeptabel. Die On-Source-Steuerung ist in Bezug auf Leistung und Entwicklungsschwierigkeiten ausgewogener und für die meisten Geschäftsszenarien geeignet. Darüber hinaus kann je nach objektiven Bedingungen (Leistungsanforderungen, Ressourcennutzung der Quelle und des Endes usw.) eine Schicht zwischen der Quelle und dem Ende hinzugefügt werden, und für die Verarbeitung können spezielle Algorithmen und Technologien verwendet werden. Im Folgenden wird hauptsächlich die Paging-Funktion auf der Quelle, also SQL, besprochen. Das Problem beim Paging besteht eigentlich darin, aus einem Stapel geordneter Daten, die die Bedingungen erfüllen, den Teil abzufangen, der aktuell angezeigt werden muss. Tatsächlich verfügen verschiedene Datenbanken über integrierte Strategien für Paging-Probleme, wie etwa LIMIT in MySql, ROWNUM und ROW_NUMBER() in Oracle und TOP und ROW_NUMBER() in SqlServer. Darauf basierend können wir eine Reihe von Paging-Methoden erhalten. 1. Basierend auf MySQLs LIMIT und Oracles ROWNUM können Sie den Rückgabebereich direkt begrenzen (nehmen Sie MySQL als Beispiel. Beachten Sie, dass bei Verwendung von Oracles ROWNUM eine Unterabfrage angewendet werden sollte): Methode 1: Rückgabebereich direkt begrenzen SELECT * FROM Tabelle WHERE Abfragebedingung ORDER BY Sortierbedingung LIMIT ((Seitenzahl - 1) * Seitengröße), Seitengröße; Vorteile: Einfaches Schreiben. 2. Basierend auf LIMIT (MySql), ROWNUM (Oracle) und TOP (SqlServer) können sie die Anzahl der zurückgegebenen Zeilen begrenzen, sodass wir die folgenden beiden Sätze allgemeiner Methoden erhalten (am Beispiel von SqlServer): Methode 2: NICHT IN SELECT TOP Seitengröße * FROM Tabelle WHERE Primärschlüssel NOT IN ( SELECT TOP (Seitenzahl - 1) * Seitengröße Primärschlüssel FROM Tabelle WHERE Abfragebedingung ORDER BY Sortierbedingung) ORDER BY Sortierbedingung Vorteile: Große Vielseitigkeit. Methode 3: MAX SELECT TOP Seitengröße * FROM Tabelle WHERE Abfragebedingung AND ID > ( Wählen Sie ISNULL (MAX (id), 0) aus ( SELECT TOP ((Seitenzahl - 1) * Seitengröße) id FROM Tabelle WHERE Abfragebedingung ORDER BY id ) AS tempTable ) ORDER BY-ID Vorteile: Schnell, insbesondere wenn die ID der Primärschlüssel ist. 3. Basierend auf ROW_NUMBER () von SqlServer und Oracle kann die Zeilennummer der zurückgegebenen Daten ermittelt werden. Basierend darauf wird die folgende Methode erhalten, indem der Rückgabebereich eingeschränkt wird (am Beispiel von SqlServer): Methode 4: ROW_NUMBER() SELECT TOP Seitengröße * FROM ( SELECT TOP (Seitenzahl * Seitengröße) ROW_NUMBER() OVER (ORDER BY Sortierbedingung) AS RowNum, * FROM Tabelle WHERE Abfragebedingung) AS tempTable WHERE RowNum BETWEEN (Seitenzahl - 1) * Seitengröße + 1 AND Seitenzahl * Seitengröße ORDER BY RowNum Vorteile: Es bietet Vorteile gegenüber NOT IN, wenn die Datenmenge groß ist. Das Obige ist meine bescheidene Meinung. Der Leistungsvergleich basiert auf Online-Informationen und persönlichen Einschätzungen. Es gibt keine ausführlichen Experimente. Bitte korrigieren Sie mich, wenn es unangemessene Punkte gibt. Dies ist das Ende dieses Artikels über verschiedene Implementierungsmethoden und Vor- und Nachteile der Paging-Abfrage in MySQL. Weitere Informationen zu Paging-Abfragemethoden in MySQL finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird. Das könnte Sie auch interessieren:
|
<<: JavaScript implementiert die umfassendste Codeanalyse einer einfachen Lupe (ES5)
1.1 Was ist MySQL Multi-Instance? Einfach ausgedr...
Inhaltsverzeichnis Ursachen der MySQL-Tabellenfra...
Am Samstag war der Redis-Server auf dem Produktio...
Inhaltsverzeichnis 1. Projektbeschreibung: 2. Pro...
Ich habe mich beim Backend angemeldet, um die Lös...
laden Anforderung erfolgreich Anforderung fehlges...
Laden Sie zuerst JDK herunter. Hier verwenden wir...
In diesem Artikel wird der spezifische Code von S...
Inhaltsverzeichnis 1. Häufige Fehler von Anfänger...
1. Installieren Sie libfastcommon-1.0.43. Das Ins...
CSS enthält viele Attribute. Manche Attribute wer...
Es ist auch sehr einfach, Django-Projekte mit Doc...
Betriebssystem: Win10 Home Edition Installieren S...
Inhaltsverzeichnis React-Native-Projektinitialisi...
Dieser Artikel veranschaulicht anhand von Beispie...