Zusammenfassung der Wissenspunkte zur MySQL-Architektur

Zusammenfassung der Wissenspunkte zur MySQL-Architektur

1. Datenbanken und Datenbankinstanzen

Beim Studium von MySQL gibt es zwei Konzepte, die sehr leicht verwechselt werden können, nämlich Datenbank und Datenbankinstanz. In MySQL werden Datenbanken und Datenbankinstanzen wie folgt definiert:

Datenbank: eine Sammlung gespeicherter Daten;

Datenbankinstanz: Eine Sammlung operativer Datenbanken.

Die obige Definition ist sehr klar. Die Datenbank wird zum Speichern von Daten verwendet, und die Datenbankinstanz wird zum Bearbeiten der Daten verwendet. Aus Sicht des Betriebssystems wird die Datenbankinstanz als Prozess dargestellt, der mehreren Threads entspricht.

In einer nicht-clusterbasierten Datenbankarchitektur besteht eine Eins-zu-eins-Entsprechung zwischen einer Datenbank und einer Datenbankinstanz. In einem Datenbankcluster können mehrere Datenbankinstanzen eine Datenbank betreiben, d. h. es besteht eine Viele-zu-eins-Beziehung.

2. MySQL-Gerüst

Obwohl MySQL mehrere Versionsiterationen durchlaufen hat (MySQL5.5, MySQL 5.6, MySQL 5.7, MySQL 8), basiert jede Iteration auf MySQL

Das MySQL-Gerüst umfasst im Allgemeinen die folgenden Hauptmodulkomponenten:

(1) MySQL stellt externe interaktive Schnittstellen (Connectors) bereit

(2) Verwaltungsdienstleistungen und Dienstprogramme

(3) Verbindungspool

(4) SQL Schnittstelle

(5) Query Analyzer-Komponente (Parser)

(6) Optimizer-Komponente

(7) Caches und Puffer

(8) Steckbare Speicher-Engines

(9) Physische Datei (Dateisystem)

(I) MySQL stellt externe interaktive Schnittstellen (Connectors) zur Verfügung

Die Connectors-Komponente ist eine interaktive Komponente, die von MySQL bereitgestellt wird. Sprachen wie Java, .net und PHP können diese Komponente verwenden, um SQL-Anweisungen auszuführen und mit SQL zu interagieren.

2. Verwaltungsservice und Dienstprogramme

Bietet integrierte Verwaltung von MySQL, wie etwa Sicherung, Wiederherstellung, Sicherheitsverwaltung usw.

(III) Verbindungspool

Verantwortlich für die Überwachung verschiedener Anfragen vom Client an den MySQL-Server, den Empfang von Anfragen und die Weiterleitung von Anfragen an das Zielmodul. Jede Client-Anfrage, die erfolgreich eine Verbindung zum MySQL-Server herstellt, wird

Erstellen oder weisen Sie einen Thread zu, der für die Kommunikation zwischen dem Client und dem MySQL-Server verantwortlich ist, vom Client gesendete Befehle empfängt und Ergebnisinformationen vom Server überträgt.

(IV) SQL-Schnittstelle

Empfangen Sie SQL-Benutzerbefehle wie DML, DDL und gespeicherte Prozeduren und geben Sie die Endergebnisse an den Benutzer zurück.

(V) Abfrageanalysekomponente (Parser)

Zunächst wird die Rechtmäßigkeit der SQL-Befehlssyntax analysiert und versucht, den SQL-Befehl in eine Datenstruktur zu zerlegen. Wenn die Zerlegung fehlschlägt, deutet dies darauf hin, dass die SQL-Anweisung nicht sinnvoll ist.

(VI) Optimierer

Optimieren und analysieren Sie SQL-Befehle nach Standardverfahren.

7. Caches und Puffer

Cache- und Pufferkomponenten

MySQL-Speicher-Engine

1. Was ist die MySQL-Speicher-Engine?

MySQL ist eine relationale Datenbank. Die Speicherung relationaler Datenbanken erfolgt in Tabellenform. Das Erstellen von Tabellen sowie das Speichern, Abrufen und Aktualisieren von Daten wird alles von MySQL durchgeführt.

Dies wird von der Speicher-Engine erledigt, und die MySQL-Speicher-Engine spielt auch in MySQL eine wichtige Rolle.

Leser, die sich mit SQL Server und Oracle beschäftigt haben, wissen möglicherweise, dass diese beiden Datenbanken nur eine Speicher-Engine haben, während MySQL über mehrere Arten von Speicher-Engines verfügt, wie z. B. MyISAM-Speicher

Engine, InnoDB-Speicher-Engine und Memory-Speicher-Engine.

Der Grund, warum MySQL über mehrere Speicher-Engines verfügt, liegt in der Open-Source-Natur von MySQL. MySQL-Speicher-Engines können grob in offizielle Speicher-Engines und Speicher-Engines von Drittanbietern unterteilt werden.

Wird durch quadratische Lagerung verursacht. Der Open-Source-Charakter von MySQL ermöglicht es Dritten, auf der Grundlage des MySQL-Frameworks Speicher-Engines zu entwickeln, die ihren Geschäftsanforderungen entsprechen.

2. MySQL-Speicher-Engine-Funktion

Die MySQL-Speicher-Engine spielt in MySQL eine wichtige Rolle. Ihre Rolle lässt sich hauptsächlich in den folgenden zwei Aspekten zusammenfassen:

Funktion 1: Tabellenerstellung, Datenabruf, Indexerstellung usw. verwalten.

Funktion 2: Erfüllen Sie die Anforderungen der benutzerdefinierten Speicher-Engine-Entwicklung.

3. MySQL-Engine-Typen

Verschiedene Arten von Speicher-Engines verfügen über unterschiedliche Speicher-Engine-Tabellenmechanismen beim Speichern von Tabellen. In Bezug auf die MySQL-Speicher-Engine-Typen können sie in offizielle Speicher-Engines und Speicher-Engines von Drittanbietern unterteilt werden.

Derzeit gibt es auch viele MySQL-Speicher-Engines, wie z. B. MyISAM-Speicher-Engine, InnoDB-Speicher-Engine, NDB-Speicher-Engine, Archiv-Speicher-Engine, Federated-Speicher-Engine, Memory

Speicher-Engine, Merge-Speicher-Engine, Partner-Speicher-Engine, Community-Speicher-Engine, benutzerdefinierte Speicher-Engine und andere Speicher-Engines.

Zu den am häufigsten verwendeten Speicher-Engines gehören die InnoDB-Speicher-Engine, die MyISAM-Speicher-Engine und die Momery-Speicher-Engine.

4. Vergleich mehrerer typischer MySQL-Speicher-Engines

9. Physische Dateien (Dateisystem)

Das System, das tatsächlich MySQL-Datenbankdateien und einige Protokolldateien speichert, wie z. B. Linux, Unix, Windows usw.

Flussdiagramm mit drei Abfragen

4. Referenzen

[01] The Definitive Guide to MySQL (US) von Paul Dubois, übersetzt von Yang Tao, Yang Xiaoyun, Wang Qun usw.

【02】MySQL Technical Insider: InnoDB-Speicher-Engine von Jiang Chengyao

【03】SQL-Lernhandbuch von Alan Beaulieu

Das könnte Sie auch interessieren:
  • Konfigurationslösung für die MySQL Dual-Master-Architektur (Master-Master)
  • Tiefgreifendes Verständnis der logischen Architektur von MySQL
  • Einführung in die MySQL-Gesamtarchitektur
  • MySQL 20-Designprinzipien für Hochleistungsarchitekturen (es lohnt sich, sie zu sammeln)
  • Gängige Master-Slave-Replikationsarchitekturen in MySQL 4
  • MySQL-Lernzusammenfassung: Ein vorläufiges Verständnis des Architekturdesigns der InnoDB-Speicher-Engine
  • Detaillierte Erläuterung der logischen Architektur von MySQL
  • Details zur MySQL-Datenbankarchitektur

<<:  Detailliertes Tutorial zur Verwendung von cmake zum Kompilieren und Installieren von MySQL unter Linux

>>:  Wie Sie React forwardRef verwenden und was Sie beachten müssen

Artikel empfehlen

Natives JS zur Implementierung der E-Mail-Eingabeaufforderung im Anmeldefeld

Dieser Artikel beschreibt eine native JS-Implemen...

Einige etwas komplexere Verwendungsbeispielcodes in MySQL

Vorwort Ich glaube, dass die Syntax von MySQL nic...

Detaillierte Erklärung der MySQL-Halbsynchronisierung

Inhaltsverzeichnis Vorwort MySQL Master-Slave-Rep...

Frameset über Iframe in Body einfügen

Da Frameset und Body auf derselben Ebene liegen, k...

CentOS8-Installationstutorial für JDK8/Java8 (empfohlen)

Vorwort Zuerst wollte ich es mit wget auf CentOS8...

MySQL vollständig deinstallieren. Persönlicher Test!

MySQL sauber deinstallieren. Persönlich getestet,...

Implementierung der Nginx-Konfiguration https

Inhaltsverzeichnis 1: Bereiten Sie das https-Zert...

Detaillierte Erklärung von as, Fragezeichen und Ausrufezeichen in Typescript

1. Das Schlüsselwort as gibt eine Behauptung an I...

Nginx verwendet den Gzip-Algorithmus zum Komprimieren von Nachrichten

Was ist HTTP-Komprimierung Manchmal werden relati...

Der Quellcode zeigt, warum Vue2 Daten und Methoden direkt abrufen kann

Inhaltsverzeichnis 1. Beispiel: Hiermit können Da...