mongodb 'count' mit Abfrage ist sehr langsam

8

jeder, ich benutze eine mongodb 2.4.6 Version und in Windows 2008 64-bit.

Ich habe eine Sammlung mit zwei Millionen Datensätzen und muss im Client suchen und paging.

%Vor%

aber bei der Berechnung der Gesamtzahl der Datensätze:

%Vor%

diese Count-Befehl abgelaufene Zeit ist 460ms , ist zu langsam.wenn wir eine Menge Anfrage haben, dass sehr schrecklich.

Ich habe einen Index für ein Feld 'catalogs' erstellt und kann den Befehl $inc nicht verwenden, da die Abfrage sehr komplex sein kann.

Ich google einige wie dieses Problem und fand diesen Leistungsfehler "Anzahl" bereits in Version mongodb 2.4 behoben.

von Ссылка

%Vor%

Welche Möglichkeiten können die Zählung verbessern? Danke.

einige Informationen aktualisieren

%Vor%

die Abfrage und die verstrichene Zeit:

%Vor%

die Abfrage exaplin:

%Vor%

}

    
zhengchun 28.09.2013, 05:58
quelle

2 Antworten

0

Der Grund, warum diese Zählabfrage nicht besonders schnell ist, liegt darin, dass 451466 Einträge im Index nach oben gezählt werden müssen. Mit anderen Worten, Ihre Abfrage ist nicht sehr selektiv in Bezug auf den Index und die Größe der Einträge, die die Abfrage erfüllen.

    
Asya Kamsky 06.07.2014 01:30
quelle
-1

count() iteriert alle Ergebnisse im Cursor, bevor eine Zählung erfolgt, deshalb ist es so langsam. Verwenden Sie stattdessen size() , es ist ziemlich schnell in Bezug auf count() .

    
Juzer Ali 17.08.2015 04:51
quelle

Tags und Links