Dieser Artikel stellt hauptsächlich die beiden Methoden von mongoDB zur Implementierung von Paging vor. Interessierte Freunde können sich darauf beziehen
MongoDBs Paging query verwendet die drei Funktionen array limit(), skip() und sort(), um eine Paging-Abfrage durchzuführen.
Das Folgende sind meine Testdaten
db.test.find().sort({"age":1});
Die erste Methode
Fragen Sie die Daten auf der ersten Seite ab: db.test.find().sort({"age":1}).limit(2); 🎜>
Fragen Sie die Daten auf der zweiten Seite ab: db.test.find().sort({"age":1}).skip(2).limit(2) ; Fragen Sie die Anzahl anderer Seiten usw. ab. . .Die zweite Methode
Fragen Sie die Daten auf der ersten Seite ab: db.test.find().sort({"age":1}).limit( 2); Gleiche wie die erste Methode oben. Fragen Sie die Daten auf der zweiten Seite ab: Dies dient dazu, den Wert des letzten Datensatzes auf der ersten Seite abzurufen und dann die vorherigen Datensätze auszuschließen um einen neuen Datensatz zu erhalten Zusammenfassend lässt sich sagen, dass die erste Methode relativ einfach ist. Wenn die Datenmenge relativ groß ist, ist sie besser Um die zweite Methode zu verwenden, ist die Funktion „skip()“ nicht erforderlich.Überspringen überspringt zu viele Datensätze und die Effizienz ist etwas geringNach sorgfältiger Überlegung ist die zweite Methode Es ist in der Tat nicht zum Überspringen von Seiten geeignet und auch nicht sehr effizient.
Für große Datenmengen müssen wir eine spezielle Verarbeitung durchführen
Es gibt die folgenden zwei Methoden
Die erste Methode
Begrenzen Sie die Anzahl der Paging-Seiten, ähnlich der Paging-Verarbeitung von Baidu, die nur zeigt die vorherigen siebenhundert Datensätze an, so dass es keinen Grund gibt, Leistungsprobleme zu berücksichtigen. Schließlich blättern die meisten Leute einfach auf den ersten zehn Seiten und finden, was sie brauchen.
Die folgenden statistischen Ergebnisse sollten geschätzt werden über den Anteil dieser gefundenen Datensätze. Schätzen Sie die Gesamtzahl der Datensätze.
Die zweite MethodeVorausgesetzt, es ist sortiert Zur ID können wir der ID folgen. Die Seriennummer der Seite, auf der sich die ID befindet, wird in redis/MemberCached gespeichert,
so, vorausgesetzt, jede Seite hat 10 Datensätze
ID-Seite
1 1
2 1
. . .
10 1
11 2
12 2
. . . .
20 2
Auf diese Weise können wir beim Überprüfen der ersten Seite direkt zehn Datenelemente abrufen
Angenommen, es gibt 100 Millionen Datenelemente, einen Datensatz Die ID belegt 4 Bytes. Andere Informationen belegen ein Byte und ein Datensatz belegt 5 Bytes.
1 0000 0000 *5/(1024*1024)=476 MB
Dieser Ansatz verwendet im Allgemeinen Raum für Zeit Der größte Teil der Datenbankabfragezeit wird für die Verbindung zur Datenbank aufgewendet. Das Einfügen in den Cache kann die Abfrage erheblich beschleunigen
Das obige ist der detaillierte Inhalt vonWie implementiert mongoDB Paging?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!