Heim Datenbank MySQL-Tutorial Zusammenfassung der MongoDB-Methoden zur Verbesserung der Leistung

Zusammenfassung der MongoDB-Methoden zur Verbesserung der Leistung

Sep 19, 2018 pm 03:21 PM
mongodb

Der Inhalt dieses Artikels ist eine Zusammenfassung der Methoden zur Verbesserung der Leistung von MongoDB. Ich hoffe, dass er für Freunde hilfreich ist.

MongoDB ist eine Hochleistungsdatenquelle, bei der Verwendung kann es jedoch gelegentlich zu Leistungsproblemen kommen. MongoDB im Vergleich zu anderen relationalen Datenbanken wie SQL Server, MySQL, Oracle Im Vergleich dazu ist es relativ neu und viele Menschen sind damit nicht sehr vertraut, sodass sich viele Entwickler und Datenbankadministratoren häufig auf die Realisierung von Funktionen konzentrieren und die Leistungsanforderungen ignorieren. Tatsächlich MongoDB und SQL Wie bei Server, MySQL und Oracle haben die Designanpassung eines Datenbankobjekts, die Erstellung von Indizes und die Optimierung von Anweisungen einen großen Einfluss auf die Leistung.

Um die Leistungsfähigkeit von MongoDB voll auszuschöpfen, haben wir die folgenden 18 Punkte einfach zusammengefasst. Jeder ist herzlich eingeladen, diese weiter zusammenzufassen und zu verbessern.

(1) Es wird empfohlen, den Standardwert für den _id-Schlüssel im Dokument zu verwenden, und das Speichern benutzerdefinierter Werte in _id ist verboten.

Interpretation: Im MongoDB-Dokument gibt es einen „_id“-Schlüssel, der standardmäßig ein ObjectID-Objekt ist (der Bezeichner umfasst Zeitstempel, Maschinen-ID, Prozess-ID und Zähler). MongoDB hat einen großen Unterschied in der Einfügegeschwindigkeit, wenn _id angegeben wird und wenn _id nicht angegeben wird. Die Angabe von _id verlangsamt die Einfügegeschwindigkeit.

(2) Es wird empfohlen, kurze Feldnamen zu verwenden.

Interpretation: Im Gegensatz zu relationalen Datenbanken muss jedes Dokument in der MongoDB-Sammlung einen Feldnamen speichern, und lange Feldnamen erfordern mehr Speicherplatz.

(3) Der MongoDB-Index kann die Abfrage-, Aktualisierungs-, Lösch- und Sortiervorgänge für Dokumente verbessern. Erstellen Sie daher einen Index, der den Geschäftsanforderungen entspricht.

(4) Jeder Index belegt etwas Platz und verursacht einen Ressourcenverbrauch für den Einfügevorgang. Daher wird empfohlen, die Anzahl der Indizes in jeder Sammlung so weit wie möglich auf 5 zu beschränken.

(5) Für Abfragen, die mehrere Schlüssel enthalten, ist die Erstellung eines zusammengesetzten Indexes, der diese Schlüssel enthält, eine gute Lösung. Die Schlüsselwertreihenfolge eines zusammengesetzten Index ist sehr wichtig. Verstehen Sie das Prinzip des ganz linken Präfixes des Index.

Interpretation: Erstellen Sie beispielsweise einen kombinierten Index {a:1,b:1,c:1} für die Testsammlung. Führen Sie die folgenden 7 Abfrageanweisungen aus:

db.test.find({a:”hello”}) // 1
db.test.find({b:”sogo”, a:”hello”}) // 2
db.test.find({a:”hello”,b:”sogo”, c:”666”}) // 3
db.test.find({c:”666”, a:”hello”}) // 4
db.test.find({b:”sogo”, c:”666”}) // 5
db.test.find({b:”sogo” }) // 6
db.test.find({c:”666”}) // 7
Nach dem Login kopieren

Die obigen Abfrageanweisungen können mit 1, 2, 3, 4 indiziert werden

Die Abfrage sollte das Indexfeld ganz links enthalten und die Reihenfolge der Indexerstellung hat Vorrang . Die Reihenfolge der Abfragefelder ist irrelevant.

Der kleinste Index deckt die meisten Abfragen ab.

(6) TTL-Index (Time-to-Live-Index, Index mit Lebenszyklus) Die Verwendung eines TTL-Index kann dazu führen, dass Dokumente innerhalb des Timeout-Zeitraums gelöscht werden.

Interpretation: Der zum Erstellen von TTL verwendete Index muss vom Typ Datum sein. Der TTL-Index ist ein Einzelfeldindex und kann kein zusammengesetzter Index sein. Der TTL-Hintergrundthread zum Löschen von Dokumenten entfernt ungültige Dokumente alle 60 Sekunden. Sammlungen mit fester Länge werden nicht unterstützt.

(7) Wenn Sie einen Index für ein bestimmtes Feld in der Sammlung erstellen müssen, aber viele Dokumente in der Sammlung diesen Schlüsselwert nicht enthalten, wird empfohlen, einen Sparse-Index zu erstellen.

Interpretation: Der Index ist standardmäßig dicht, was bedeutet, dass auch dann eine entsprechende Beziehung im Index besteht, wenn das Indexfeld des Dokuments fehlt. In einem spärlichen Index werden nur Dokumente angezeigt, die Indexschlüsselwerte enthalten.

(8) Beim Erstellen eines Textindex gibt das Feld Text an, nicht 1 oder -1. Es gibt nur einen Textindex pro Sammlung, es können jedoch beliebig viele Felder indiziert werden.

Interpretation: Die Textsuche ist viel schneller. Es wird empfohlen, einen Textindex zu verwenden, um ineffiziente Abfragen für mehrere Felder von Sammlungsdokumenten zu ersetzen.

(9) Verwenden Sie findOne, um mehrere übereinstimmende Elemente in der Datenbank abzufragen, und es wird das erste Element in der natürlich sortierten Dateisammlung zurückgegeben. Wenn Sie mehrere Dokumente zurückgeben müssen, verwenden Sie die Suchmethode.

(10) Wenn die Abfrage nicht das gesamte Dokument zurückgeben muss oder nur zur Bestimmung verwendet wird, ob ein Schlüsselwert vorhanden ist, können Sie die zurückgegebenen Felder durch Projektion (Zuordnung) einschränken, um den Netzwerkverkehr und den Clientspeicher zu reduzieren Verwendung.

Interpretation: Sie können die zurückgegebenen Felder entweder explizit angeben, indem Sie {key:1} festlegen, oder Sie können {key:0} festlegen, um die Felder anzugeben, die ausgeschlossen werden müssen.

(11) Mit Ausnahme von Abfragen im Präfixstil können Abfragen mit regulären Ausdrücken keine Indizes verwenden und die Ausführung dauert länger als bei den meisten Selektoren. Sie sollten sparsam verwendet werden.

(12) Bei Aggregationsoperationen muss $ vor match und $group stehen. Durch Voranstellen von $ können Sie das Präfix von match reduzieren und die Anzahl der vom $group-Operator zu verarbeitenden Dokumente reduzieren.

(13) Das Ändern von Dokumenten durch Operatoren führt normalerweise zu einer besseren Leistung, da kein Hin- und Hergehen zum Server erforderlich ist, um Dokumentdaten abzurufen und zu ändern, und weniger Zeit für die Serialisierung und Übertragung von Daten aufgewendet werden kann . Zeit.

(14) Batch Insert kann die Anzahl der Datenübermittlungen an den Server reduzieren und die Leistung verbessern. Die stapelweise übermittelte BSON-Größe überschreitet jedoch nicht 48 MB.

(15) Es ist verboten, zu viele Daten auf einmal zum Sortieren abzurufen. MongoDB unterstützt derzeit das Sortieren von Ergebnissätzen innerhalb von 32 MB. Wenn eine Sortierung erforderlich ist, versuchen Sie, die Datenmenge im Ergebnissatz zu begrenzen.

(16) Einige $-Operatoren in der Abfrage können zu einer geringen Leistung führen, z. B. $ne, $, not, $exists, $nin, $oder versuchen, sie zu verwenden. Nicht im Geschäftsleben verwenden.

a) $exist: Aufgrund der losen Dokumentstruktur muss die Abfrage jedes Dokument durchlaufen

b) $ne: Wenn der negierte Wert die Mehrheit ist, wird der gesamte Index gescannt ;

c) $not: kann dazu führen, dass der Abfrageoptimierer nicht weiß, welcher Index verwendet werden soll, sodass es häufig zu einem vollständigen Tabellenscan kommt.

d) $nin: ein vollständiger Tabellenscan

e) $ wird so oft abgefragt, wie es mehrere Bedingungen gibt. Beim Zusammenführen des Ergebnissatzes sollten Sie erwägen, es zu ändern: oder: Wie oft wird abgefragt, wenn es mehrere Bedingungen gibt, wenn das Ergebnis zusammengeführt wird festgelegt haben, sollten Sie erwägen, es in $in zu ändern.

(17) Zum Aufzeichnen von Protokollen können feste Sammlungen verwendet werden, die Daten schneller einfügen und beim Einfügen von Daten die ältesten Daten eliminieren können. Diese Funktion kann bei der Bedarfsanalyse und beim Entwurf berücksichtigt werden, wodurch die Leistung verbessert wird und eine Löschung überflüssig wird.

Interpretation: Feste Sammlungen müssen explizit erstellt werden, geben Sie die Größe an und können Sie auch die Anzahl der Dokumente angeben. Unabhängig davon, welcher Grenzwert zuerst erreicht wird, wird bei später eingefügten neuen Dokumenten das älteste Dokument entfernt.

(18) Das Datenvolumen der Dokumente in der Sammlung wirkt sich auf die Abfrageleistung aus. Um ein angemessenes Volumen aufrechtzuerhalten, ist eine regelmäßige Archivierung erforderlich.

Das obige ist der detaillierte Inhalt vonZusammenfassung der MongoDB-Methoden zur Verbesserung der Leistung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Version wird im Allgemeinen für Mongodb verwendet? Welche Version wird im Allgemeinen für Mongodb verwendet? Apr 07, 2024 pm 05:48 PM

Es wird empfohlen, die neueste Version von MongoDB (derzeit 5.0) zu verwenden, da diese die neuesten Funktionen und Verbesserungen bietet. Bei der Auswahl einer Version müssen Sie funktionale Anforderungen, Kompatibilität, Stabilität und Community-Unterstützung berücksichtigen. Die neueste Version verfügt beispielsweise über Funktionen wie Transaktions- und Aggregationspipeline-Optimierung. Stellen Sie sicher, dass die Version mit der Anwendung kompatibel ist. Wählen Sie für Produktionsumgebungen die Langzeit-Support-Version. Die neueste Version bietet eine aktivere Community-Unterstützung.

Der Unterschied zwischen NodeJS und VueJS Der Unterschied zwischen NodeJS und VueJS Apr 21, 2024 am 04:17 AM

Node.js ist eine serverseitige JavaScript-Laufzeitumgebung, während Vue.js ein clientseitiges JavaScript-Framework zum Erstellen interaktiver Benutzeroberflächen ist. Node.js wird für die serverseitige Entwicklung verwendet, beispielsweise für die Entwicklung von Back-End-Service-APIs und die Datenverarbeitung, während Vue.js für die clientseitige Entwicklung verwendet wird, beispielsweise für Single-Page-Anwendungen und reaktionsfähige Benutzeroberflächen.

Wo wird die von mongodb erstellte Datenbank erstellt? Wo wird die von mongodb erstellte Datenbank erstellt? Apr 07, 2024 pm 05:39 PM

Die Daten der MongoDB-Datenbank werden im angegebenen Datenverzeichnis gespeichert, das sich im lokalen Dateisystem, Netzwerkdateisystem oder Cloud-Speicher befinden kann. Der spezifische Speicherort ist wie folgt: Lokales Dateisystem: Der Standardpfad ist Linux/macOS: /data/db, Windows: C:\data\db. Netzwerkdateisystem: Der Pfad hängt vom Dateisystem ab. Cloud-Speicher: Der Pfad wird vom Cloud-Speicheranbieter bestimmt.

Was sind die Vorteile der Mongodb-Datenbank? Was sind die Vorteile der Mongodb-Datenbank? Apr 07, 2024 pm 05:21 PM

Die MongoDB-Datenbank ist für ihre Flexibilität, Skalierbarkeit und hohe Leistung bekannt. Zu seinen Vorteilen gehört: ein Dokumentdatenmodell, das eine flexible und unstrukturierte Speicherung von Daten ermöglicht. Horizontale Skalierbarkeit auf mehrere Server über Sharding. Abfrageflexibilität, Unterstützung komplexer Abfragen und Aggregationsvorgänge. Datenreplikation und Fehlertoleranz sorgen für Datenredundanz und hohe Verfügbarkeit. JSON-Unterstützung für einfache Integration mit Front-End-Anwendungen. Hohe Leistung für schnelle Reaktion auch bei der Verarbeitung großer Datenmengen. Open Source, anpassbar und kostenlos nutzbar.

Was bedeutet Mongodb? Was bedeutet Mongodb? Apr 07, 2024 pm 05:57 PM

MongoDB ist ein dokumentenorientiertes, verteiltes Datenbanksystem zur Speicherung und Verwaltung großer Mengen strukturierter und unstrukturierter Daten. Zu den Kernkonzepten gehören die Speicherung und Verteilung von Dokumenten und zu den Hauptfunktionen gehören dynamische Schemata, Indizierung, Aggregation, Kartenreduzierung und Replikation. Es wird häufig in Content-Management-Systemen, E-Commerce-Plattformen, Social-Media-Websites, IoT-Anwendungen und der Entwicklung mobiler Anwendungen eingesetzt.

So öffnen Sie Mongodb So öffnen Sie Mongodb Apr 07, 2024 pm 06:15 PM

Unter Linux/macOS: Erstellen Sie das Datenverzeichnis und starten Sie den Dienst „mongod“. Unter Windows: Erstellen Sie das Datenverzeichnis und starten Sie den MongoDB-Dienst über den Service Manager. In Docker: Führen Sie den Befehl „docker run“ aus. Auf anderen Plattformen: Bitte konsultieren Sie die MongoDB-Dokumentation. Überprüfungsmethode: Führen Sie den Befehl „mongo“ aus, um eine Verbindung herzustellen und die Serverversion anzuzeigen.

Wo sind die Mongodb-Datenbankdateien? Wo sind die Mongodb-Datenbankdateien? Apr 07, 2024 pm 05:42 PM

Die MongoDB-Datenbankdatei befindet sich im MongoDB-Datenverzeichnis, das standardmäßig /data/db ist und .bson (Dokumentdaten), ns (Sammlungsinformationen), Journal (Schreibvorgangsdatensätze) und wiredTiger (Daten bei Verwendung von WiredTiger) enthält Speicher-Engine) und config (Datenbankkonfigurationsinformationen) und andere Dateien.

Was tun, wenn Navicat abläuft? Was tun, wenn Navicat abläuft? Apr 23, 2024 pm 12:12 PM

Zu den Lösungen zur Behebung von Navicat-Ablaufproblemen gehören: Erneuern der Lizenz; Deaktivieren der automatischen Updates; Wenden Sie sich an den Navicat-Kundendienst.

See all articles