Vorwort Wenn wir Abfrageanweisungen verwenden, müssen wir häufig die ersten oder mittleren Datenzeilen zurückgeben. Was sollten wir jetzt tun? Keine Sorge, MySQL stellt uns bereits eine solche Funktion zur Verfügung. SELECT * FROM Tabelle LIMIT [Offset,] Zeilen | Zeilen OFFSET Offset Mit der LIMIT-Klausel können Sie eine SELECT-Anweisung zwingen, eine bestimmte Anzahl von Datensätzen zurückzugeben. LIMIT akzeptiert ein oder zwei numerische Argumente. Das Argument muss eine ganzzahlige Konstante sein. Wenn zwei Argumente angegeben werden, gibt das erste Argument den Offset der ersten zurückgegebenen Zeile und das zweite Argument die maximale Anzahl der zurückgegebenen Zeilen an. Der anfängliche Zeilenoffset ist 0 (nicht 1): Aus Kompatibilitätsgründen mit PostgreSQL unterstützt MySQL auch die Syntax: LIMIT # OFFSET #. Daher verwenden wir beim Abfragen von Daten normalerweise eine begrenzte Paginierung, da dadurch vollständige Tabellenabfragen vermieden und die Abfrageeffizienz verbessert werden. Wenn jedoch die Datenmenge in einer Tabelle zunimmt, werden Paging-Abfragen langsamer. Schauen wir uns die ausführliche Einführung unten an. Optimierung des MySQL-Paging-Limits Erstellen Sie eine Testtabellenkarte mit 20 Millionen Daten mysql> wähle Anzahl(*) von Karte aus; +----------+ | Anzahl(*) | +----------+ | 20000000 | +----------+ 1 Zeile im Satz (0,00 Sek.) -Testen Sie zunächst die Abfragegeschwindigkeit der ersten 1000 Zeilen mysql> Auswahl * ab Kartenlimit 1000,10; +---------+--------------------------------------+ | Karten-ID | Kartennummer | +---------+--------------------------------------+ | 1001 | 13fc90a6-2e3b-11e8-ae62-9c5c8e6e37cf | | 1002 | 13fc923e-2e3b-11e8-ae62-9c5c8e6e37cf | | 1003 | 13fc93d5-2e3b-11e8-ae62-9c5c8e6e37cf | | 1004 | 13fc956a-2e3b-11e8-ae62-9c5c8e6e37cf | | 1005 | 13fc9702-2e3b-11e8-ae62-9c5c8e6e37cf | | 1006 | 13fc9899-2e3b-11e8-ae62-9c5c8e6e37cf | | 1007 | 13fc9a31-2e3b-11e8-ae62-9c5c8e6e37cf | | 1008 | 13fc9bc6-2e3b-11e8-ae62-9c5c8e6e37cf | | 1009 | 13fc9d5e-2e3b-11e8-ae62-9c5c8e6e37cf | | 1010 | 13fc9ef5-2e3b-11e8-ae62-9c5c8e6e37cf | +---------+--------------------------------------+ 10 Zeilen im Satz (0,00 Sek.) -Testen Sie die Abfrage nach 1 Million mysql> Auswahl * vom Kartenlimit 1000000,10; +---------+--------------------------------------+ | Karten-ID | Kartennummer | +---------+--------------------------------------+ | 1000001 | 2d87021a-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000002 | 2d8703ac-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000003 | 2d87053b-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000004 | 2d8706cd-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000005 | 2d87085f-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000006 | 2d8709f1-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000007 | 2d870b83-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000008 | 2d870d18-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000009 | 2d870eaa-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000010 | 2d871039-2e3b-11e8-ae62-9c5c8e6e37cf | +---------+--------------------------------------+ 10 Zeilen im Satz (0,18 Sek.) -Testen Sie die Abfrage nach 10 Millionen mysql> Auswahl * ab Kartenlimit 10000000,10; +----------+--------------------------------------+ | Karten-ID | Kartennummer | +----------+--------------------------------------+ | 10000001 | b11ad76c-2e49-11e8-ae62-9c5c8e6e37cf | | 10000002 | b11aefd5-2e49-11e8-ae62-9c5c8e6e37cf | | 10000003 | b11af868-2e49-11e8-ae62-9c5c8e6e37cf | | 10000004 | b11b0031-2e49-11e8-ae62-9c5c8e6e37cf | | 10000005 | b11b07ad-2e49-11e8-ae62-9c5c8e6e37cf | | 10000006 | b11b0f0f-2e49-11e8-ae62-9c5c8e6e37cf | | 10000007 | b11b1669-2e49-11e8-ae62-9c5c8e6e37cf | | 10000008 | b11b1db2-2e49-11e8-ae62-9c5c8e6e37cf | | 10000009 | b11b24fa-2e49-11e8-ae62-9c5c8e6e37cf | | 10000010 | b11b2c37-2e49-11e8-ae62-9c5c8e6e37cf | +----------+--------------------------------------+ 10 Reihen im Satz (1,29 Sek.)
Wie lässt sich also das Scannen von einer Million Daten vermeiden? Wir können eindeutig erkennen, dass der Primärschlüssel nach 1 Million größer als 1 Million ist. Wir können also das SQL umschreiben, um den Index zu verwenden und die Anzahl der gescannten Zeilen zu reduzieren mysql> Auswahl * von Karte, wobei Karten-ID>=1000000, Limit 10; +---------+--------------------------------------+ | Karten-ID | Kartennummer | +---------+--------------------------------------+ | 1000000 | 2d870088-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000001 | 2d87021a-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000002 | 2d8703ac-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000003 | 2d87053b-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000004 | 2d8706cd-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000005 | 2d87085f-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000006 | 2d8709f1-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000007 | 2d870b83-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000008 | 2d870d18-2e3b-11e8-ae62-9c5c8e6e37cf | | 1000009 | 2d870eaa-2e3b-11e8-ae62-9c5c8e6e37cf | +---------+--------------------------------------+ 10 Zeilen im Satz (0,00 Sek.) Dies kann die Abfrageeffizienz erheblich verbessern Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. 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:
|
<<: Implementierung der Nummernschild-Eingabefunktion im WeChat-Applet
>>: Koexistenz von Python2 und Python3 unter einem CentOS7-System
Ich habe gerade einen Alibaba Cloud-Host gekauft ...
Inhaltsverzeichnis 1. Vorbereitung 2. Definieren ...
Dieser Artikel veranschaulicht anhand von Beispie...
Im Frontend-Designentwurf sieht man oft Schließen...
Das Erstellen eines React-Projekts kann sehr einf...
Inhaltsverzeichnis Zeig mir den Code Testen Sie d...
In diesem Artikel wird der spezifische Code von J...
1. MySQL herunterladen Offizielle Website-Downloa...
Inhaltsverzeichnis 1.1. MySQL-Binlog aktivieren 1...
Wenn der Benutzer sich abgemeldet hat und im Brows...
Lassen Sie uns zunächst den Netzwerkeinstellungsm...
Angenommen, wir haben n Elemente und müssen diese...
Inhaltsverzeichnis Vorwort Tatsächlicher Kampf 1....
Lastenausgleich ist ein häufig verwendetes Mittel...
Inhaltsverzeichnis 1. Einfach zu bedienen 2. Verw...