Brauchen Sie Ihre Hilfe in den folgenden Dingen:MongoDB. Warum werden Anfragen vom Index so langsam ausgeführt?
Ich habe eine MongoDB Sammlung, die mehr als 26 Millionen Dokumente enthält. Dokumentstruktur konstant ist (pastebin.com/iBzW0Fkz)
Die Sammlung einen Index für die "Benutzer" Feld enthält
db.conversations.getIndexes();
RESULT - pastebin.com/xHecpw00
Alle Anfragen für das Feld " Benutzer“werden sehr langsam ausgeführt (mehr als 100 ms)
db.getCollection('conversations').find({users: {$all: ["5942328", "9082468"]}});
EXPLAIN - pastebin.com/0C11Cr9F
db.getCollection('conversations').find({users: "9163099"});
EXPLAIN - pastebin.com/CmvuDf10
Die Liste der Fragen:
- Warum Anfragen durch den Index so langsam durchgeführt werden?
- Wie Indizes nach dem Neustart von mongodb Server oder Prozess zu aktualisieren? Die Touch() - Anweisung ist in der WiredTiger-Engine nicht mehr verfügbar.
Hier ist eine zusätzliche Info
db.stats();
RESULT - pastebin.com/9JZF8ChQ
db.getCollection('conversations').stats();
RESULT - pastebin.com/17yV4Fsi
db.conversations.getIndexes();
RESULT - Pastebin .com/xHecpw00
Info über den Server:
lscpu - pastebin.com/k7wUE4gH
lshw -kurzes - pastebin.com/w5XYuY3U
eine Annahme Es ist, das den Betrieb von HDD lesen ist Ein Flaschenhals und eine SSD können dieses Problem lösen, aber es gibt keine Möglichkeit, es zu testen.
Vielen Dank im Voraus.