Ich habe einen großen MongoDB-Server bei der Arbeit geerbt und wurde beauftragt herauszufinden, warum Abfragen, die dagegen ausgeführt werden, so langsam sind. Die DB enthält Tonnen und Tonnen von Datensätzen (in der Größenordnung von 10 ^ 9) und nimmt ungefähr 300 GiB auf. Zuerst dachte ich, dass die rohe Anzahl der Datensätze der Schuldige gewesen sein könnte, also habe ich Indizes für geeignete Felder eingerichtet. Dies war sehr hilfreich bei Abfragen, bei denen nach Kriterien in der Datenbank gesucht wurde, bei Abfragen, bei denen keine Übereinstimmungen vorhanden waren, zwischen 80 und 90 Minuten. Irgendwelche Ideen, wie man das angehen kann?
9
Antworten:
Es scheint, dass Ihnen ein wichtiger Index fehlt, zumal die Abfrage ohne Übereinstimmungen viel länger dauert als eine Abfrage mit Übereinstimmungen. Um welche Art von Abfrage handelt es sich? Vielleicht brauchen Sie einen zusammengesetzten Index? Verwenden Sie
where
als Teil der Abfrage?Ich bin kein Experte für MongoDB, aber 80-90 Minuten sind absolut abnormal. Ich weiß nicht, wie MongoDB für Arenstar "klingt", aber es hat sich gezeigt, dass es Milliarden von Dokumenten (Terabyte an Daten) verarbeitet .
quelle
Dies mag für eine Antwort zu spät sein, aber ich dachte, es wäre erwähnenswert. Es gibt Tools wie Mongostat, mit denen Sie sehen können, was tatsächlich vor sich geht. Zu viele Indexfehler, zu viele Seitenfehler. Wenn Sie gleichzeitig Lese- und Schreibvorgänge ausführen, sollten Sie auch nach dem Prozentsatz der Sperren suchen. 300 GB sind für Mongodb keine große Menge. Es kann leicht weit darüber hinausgehen.
Andere hilfreiche Befehle:
quelle
Schauen Sie sich die MongoDB Database Profiler-Seite an , insbesondere den Abschnitt zur Optimierung der Abfrageleistung .
quelle
MongoDb ist Webskala .. Sorry musste das sagen ..
Keine Übereinstimmungen dauern wahrscheinlich eine Weile, basierend auf einem Entfernungsscan ???
Ich würde es aufschlüsseln. Mongo klingt nicht wie eine Datenbank für 300 GB und ist wahrscheinlich noch nicht ausgereift genug, um zu wissen, wie es mit großen Datenmengen umgeht.
Aus welchem Grund benutzt du Mongo?
quelle