2017-11-08 13 views
0

Ich benutze mongodb neueste Version 3.4.10. Ich habe Sammlungsname namens Transaktion mit 14000 Datensätze. Die unten stehende Abfrage, die ich ausgeführt habe, dauert 10 Sekunden.Mongodb finden Abfrage läuft lange Zeit

Befehl: db.transaction.find ({mcCreatedTime: {$ gte: isodate ("2017-10-01T00: 00: 00.000Z"), $ lte: isodate ("2017-11-02T23: 59: 59.000 Z ")}})

Es wird die erwartete Aufzeichnung mit langer Zeit um 10 Sek. Zurückgeben. Ich muss die Abfrage innerhalb von Millisekunden abschließen.

Ich benutze Windows 8.1 und 4 GB RAM und 500 GB Festplatte.

Antwort

0

versuchen, einen Index wie das Erstellen:

db.transaction.createIndex({mcCreatedTime:1}, {background:true}) 

Sie müssen einen Blick auf explain nehmen um zu überprüfen, warum Ihre Abfrage langsam ist.

+0

ich habe Index erstellt. aber kein Glück. Es dauerte 10 Sekunden, um zu vervollständigen –

+0

wie viele Daten haben Sie? Was bringt der EXPLAIN-Befehl? – Astro

+0

die Abfrage ist die korrekte Ausgabe 6301 Datensätze. In meiner Transaktionssammlung sind 14000 Datensätze vorhanden. –

0

Der beste Weg, um schnellere Abfrageergebnisse in einem Datenbankverwaltungssystem zu erhalten, ist das Erstellen von Indizes.

Versuchen Sie, einen Index für das Feld mcCreatedTime zu erstellen, damit die Ergebnisse schneller zurückgegeben werden.

Aufsteigende Reihenfolge: db.transaction.createIndex({'mcCreatedTime':1}) sollte in der Lage sein, den erforderlichen Index zu erstellen.

Mongo DB Index Creation

+0

Index erstellt. aber die Abfrage ist Ergebnis ist langsam –

+0

@ K.Boopathi17 können Sie überprüfen, ob Sie sowohl aufsteigende als auch absteigende Indizes auf Datumsspalte implementiert haben, da beide für schnellere Ergebnisse beim Sortieren oder Bereichssuche erforderlich sind. https://stackoverflow.com/a/10330373/1889046 – pRmdk