Wenn ich eine Abfrage an meine Datenbank mit Python-Cloudant mit 3 Selektoren, die Abfrage dauert ~ 15 Sekunden zum Abschluss und Drucken von Ergebnissen. Wenn ich ein Limit von 2 eingeben (siehe Code unten), erscheint das Ergebnis sehr schnell, aber nach 2 dauert es viel länger. Derzeit befinden sich ~ 190.000 Dokumente in dieser Datenbank. Fehle ich etwas, das das beschleunigen kann?Python-Cloudant langsame Abfragegeschwindigkeit?
query = cloudant.query.Query(db,selector={'_id': {'$gt': 0},'userid':{'$eq':'56900'},'year':{'$eq':'[2011]'}},fields=['_id','userid','year'],sort=['_id'],limit=2)
for doc in query()['docs']:
print doc
(Das Ziel dieser Abfrage alle Datensätze aus der Benutzer-ID „56900“ zu erhalten, die „[2011]“ im Jahr Feld und sortieren sie durch die _id)
Haben Sie Indizes für das Feld userId eingerichtet? Wenn nicht, riskieren Sie, dass die Datenbank einen vollständigen Scan aller Dokumente durchführt. – rhyshort
@rhyshort Vielleicht nicht richtig. Ich habe folgendes aber es beschleunigt die Abfrage nicht: "json: Benutzer-ID, Jahr" { "type": "json", "def": { "Felder": [ { „userid „: "asc" }, { "Jahr": "asc" } – pynewb
versuchen Vielleicht machen Sie das' '_id' zu entfernen: { '$ gt': 0} 'aus der Abfrage, iirc, die auslösen würde einen Scan seit du auf das _id-Feld schaust, das alle Docs haben – rhyshort