Inhaltsverzeichnis
Ein kurzer Rückblick
Die MMAPV1-Engine wird jetzt nicht verwendet, da die
Ein Puffer, der Mongodb-Hinzufügungs-, Lösch- und Änderungsanweisungen speichert
Heim Datenbank MongoDB Eine ausführliche Analyse der MongoDB-Speicher-Engine (mit schematischer Darstellung)

Eine ausführliche Analyse der MongoDB-Speicher-Engine (mit schematischer Darstellung)

Dec 06, 2022 pm 05:00 PM
mongodb

Dieser Artikel führt Sie in das relevante Wissen über MongoDB ein und stellt die Speicher-Engine in MongoDB vor. Ich hoffe, er wird Ihnen hilfreich sein!

Ein kurzer Rückblick

Das letzte Mal haben wir über Mongodb-Cluster gesprochen, die in „Master-Slave-Cluster“ und „Sharded-Cluster“ unterteilt sind. In Bezug auf die Shards in Sharded-Clustern müssen wir sie gemeinsam überprüfen :

Für
    heiße Daten
  • bestimmte
Shard-Schlüssel

(ein Shard-Schlüssel ist ein Indexfeld oder zusammengesetztes Indexfeld, das in jedem Dokument in der Sammlung vorhanden ist) führt dazu, dass alle Lese- oder Schreibanforderungen bearbeitet werden a Single Bei Datenblöcken oder Shards führt dies dazu, dass ein einzelner Shard-Server überlastet wird und der sich selbst erhöhende Shard-Schlüssel leicht zu Schreibproblemen führt [Empfohlen: MongoDB-Video-Tutorial]

Für
    unteilbare Datenblöcke
  • Bei grobkörnigen Sharding-Schlüsseln
kann es dazu kommen, dass viele Dokumente denselben Sharding-Schlüssel verwenden

In diesem Fall können diese Dokumente nicht in mehrere Datenblöcke aufgeteilt werden, was die gleichmäßige Verteilung der Daten in der Mongodb-Fähigkeit einschränkt

Für
    Abfragehindernisse
Der Shard-Schlüssel steht in keinem Zusammenhang mit der Abfrage

, was zu einer schlechten Abfrageleistung führtWir müssen uns der oben genannten Punkte bewusst sein und bei tatsächlichen Arbeitsproblemen auf ähnliche Probleme stoßen Ich kann versuchen, damit umzugehen. Heute werden wir kurz verstehen, was die Speicher-Engine von Mongodb ist imMemory-Speicher-Engine

Als die Speicher-Engine zum ersten Mal herauskam, wurde standardmäßig die MMAPV1-Speicher-Engine verwendet.

MMAPV1-Engine. Wenn wir uns den Namen ansehen, wissen wir wahrscheinlich, dass sie mmap verwendet und das Prinzip der Linux-Speicherzuordnung verwendet

Die MMAPV1-Engine wird jetzt nicht verwendet, da die

WiredTiger-Speicher-Engine besser ist

. Im Vergleich zu WiredTiger hat sie die folgenden Vorteile:

WiredTiger

Lese- und Schreibvorgangsleistung ist besser

  • WiredTiger kann besser genutzt werden die Verarbeitungsleistung von Multi-Core-Systemen
  • WiredTiger
Die Sperrgranularität ist kleiner

MMAPV1-Engine Bei Verwendung von Sperren auf Tabellenebene ist der Durchsatz begrenzt, wenn auf einer einzelnen Tabelle gleichzeitige Vorgänge ausgeführt werden

Und WiredTiger verwendet Sperren auf Dokumentebene, wodurch die Parallelität und der Durchsatz verbessert werden Komprimierungsalgorithmus , der den Verbrauch von Festplattenressourcen erheblich reduzieren kann

Das Schreibprinzip der WiredTiger-Engine
  • Auf dem obigen Bild können wir sehen, dass WiredTiger
Das Prinzip des Schreibens auf die Festplatte ist ebenfalls sehr einfach

  • Die Anwendungsanforderung kommt an mongodb, mongodb übernimmt die Verarbeitung und speichert das Ergebnis im Cache.

    Wenn der Cache 2 G

    erreicht oder der

    60-Sekunden-Timer abläuft, werden die Daten im Cache geleert Vorsicht, xdm wird wissen, ob es jetzt genau 59 Sekunden sind. Wenn mehr als 1 GB vorhanden sind, wurden die Daten im Cache nicht mit der Festplatte synchronisiert, und Mongodb hängt nicht normal Daten verlieren?

Wir können alle mit unseren Fingern denken:

Wie konnte der Designer von Mongodb diese Situation zulassen, dann muss es eine Lösung geben
    , wie folgt
Wie im Bild oben gezeigt, gibt es eine zusätzlich ein

Journaling-Puffer

Ein Puffer, der Mongodb-Hinzufügungs-, Lösch- und Änderungsanweisungen speichert

Eine ausführliche Analyse der MongoDB-Speicher-Engine (mit schematischer Darstellung)

Journaldateien

Ähnlich wie Transaktionsprotokolle in relationalen Datenbanken
  • Der Zweck der Einführung von Journaling besteht darin:
  • Journaling kann die Mongod-B-Datenbank aufgrund der schnellen Wiederherstellung nach unerwarteten Fehlern aktivieren.Journaling-Protokollfunktion ist bereits
    Standard Wenn die Journaling-Funktion aktiviert ist, prüft der Dienst beim Starten der Mongod-Instanz, ob die Daten wiederhergestellt werden müssen
Es kommt also zu keinem Datenverlust in Mongodb, wie oben erwähnt

Außerdem müssen wir hier wissen, dass die Protokollierungsfunktion des Journalings Protokolle schreibt, wenn mongodb Schreibvorgänge ausführen muss, d Wenn der Abrufvorgang ausgeführt wird, wird er nicht im Cache aufgezeichnet, sodass der Lesevorgang keine Auswirkungen hat. Das war's. Wenn es Abweichungen gibt, korrigieren Sie mich bitte

Das obige ist der detaillierte Inhalt vonEine ausführliche Analyse der MongoDB-Speicher-Engine (mit schematischer Darstellung). 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 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 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)

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.

Ist es schwierig, NodeJS im Frontend zu lernen? Ist es schwierig, NodeJS im Frontend zu lernen? Apr 21, 2024 am 04:57 AM

Für Front-End-Entwickler hängt die Schwierigkeit, Node.js zu erlernen, von ihrer JavaScript-Grundlage, ihrer serverseitigen Programmiererfahrung, ihrer Vertrautheit mit der Befehlszeile und ihrem Lernstil ab. Die Lernkurve umfasst Module für Einsteiger und Fortgeschrittene, die sich auf grundlegende Konzepte, serverseitige Architektur, Datenbankintegration und asynchrone Programmierung konzentrieren. Insgesamt ist das Erlernen von Node.js für Entwickler, die über solide Kenntnisse in JavaScript verfügen und bereit sind, Zeit und Mühe zu investieren, nicht schwierig, aber für diejenigen, denen es an einschlägiger Erfahrung mangelt, müssen möglicherweise bestimmte Herausforderungen bewältigt werden.

So verbinden Sie Navicat mit Mongodb So verbinden Sie Navicat mit Mongodb Apr 24, 2024 am 11:27 AM

Um mit Navicat eine Verbindung zu MongoDB herzustellen, müssen Sie: Navicat installieren. Eine MongoDB-Verbindung erstellen: a. Geben Sie den Verbindungsnamen, die Hostadresse und den Port ein. b. Geben Sie die Authentifizierungsinformationen ein (falls erforderlich). Überprüfen Sie die Verbindung Speichern Sie die Verbindung

Was sind die am häufigsten verwendeten Module in NodeJS? Was sind die am häufigsten verwendeten Module in NodeJS? Apr 21, 2024 am 04:34 AM

Zu den am häufigsten verwendeten Modulen in Node.js gehören: Dateisystemmodul für Dateioperationen Netzwerkmodul für Netzwerkkommunikation Stream-Modul zur Verarbeitung von Datenströmen Datenbankmodul zur Interaktion mit Datenbanken Andere Hilfsmodule wie Verschlüsselung, Abfragezeichenfolgen, String-Analyse und HTTP-Framework

Welche Datenbank eignet sich für NodeJS? Welche Datenbank eignet sich für NodeJS? Apr 21, 2024 am 05:06 AM

Bei Node.js-Anwendungen hängt die Auswahl einer Datenbank von den Anwendungsanforderungen ab. Die NoSQL-Datenbanken MongoDB bieten Flexibilität, Redis bietet hohe Parallelität, Cassandra verarbeitet Zeitreihendaten und Elasticsearch ist auf die Suche spezialisiert. Die SQL-Datenbank MySQL bietet eine hervorragende Leistung, PostgreSQL ist reich an Funktionen, SQLite ist leichtgewichtig und Oracle Database ist umfassend. Berücksichtigen Sie bei der Auswahl Datentypen, Abfragen, Leistung, Transaktionalität, Verfügbarkeit, Lizenzierung und Kosten.

So verbinden Sie NodeJS mit der Datenbank So verbinden Sie NodeJS mit der Datenbank Apr 21, 2024 am 05:07 AM

Schritte zum Herstellen einer Verbindung zu einer Datenbank in Node.js: Installieren Sie das MySQL-, MongoDB- oder PostgreSQL-Paket. Erstellen Sie ein Datenbankverbindungsobjekt. Öffnen Sie eine Datenbankverbindung und behandeln Sie Verbindungsfehler.

Wie NodeJS die Datenbank implementiert Wie NodeJS die Datenbank implementiert Apr 21, 2024 am 05:42 AM

Um eine Verbindung zu einer Datenbank in Node.js herzustellen, müssen Sie ein Datenbanksystem (relational oder nicht relational) auswählen und anschließend eine Verbindung mit für diesen Typ spezifischen Modulen herstellen. Zu den gängigen Modulen gehören MySQL (MySQL), PG (PostgreSQL), Mongodb (MongoDB) und Redis (Redis). Nachdem die Verbindung hergestellt wurde, können Sie Abfrageanweisungen zum Abrufen von Daten und Aktualisierungsanweisungen zum Ändern der Daten verwenden. Schließlich muss die Verbindung geschlossen werden, wenn alle Vorgänge abgeschlossen sind, um Ressourcen freizugeben. Verbessern Sie Leistung und Sicherheit, indem Sie diese Best Practices befolgen, z. B. die Verwendung von Verbindungspooling, parametrisierten Abfragen und eine ordnungsgemäße Fehlerbehandlung.

Was nützt net4.0? Was nützt net4.0? May 10, 2024 am 01:09 AM

.NET 4.0 wird zum Erstellen einer Vielzahl von Anwendungen verwendet und bietet Anwendungsentwicklern umfangreiche Funktionen, darunter objektorientierte Programmierung, Flexibilität, leistungsstarke Architektur, Cloud-Computing-Integration, Leistungsoptimierung, umfangreiche Bibliotheken, Sicherheit, Skalierbarkeit, Datenzugriff und Mobilgeräte Entwicklungsunterstützung.

See all articles