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

Tutorial zum Herunterladen und Installieren von MySQL 8.0.12 WinX64

MySQL 8.0.12 Download- und Installations-Tutorial...

Detaillierte Erläuterung zum Einrichten des Ressourcencaches in Nginx

Ich wollte schon immer etwas über Caching lernen....

Spezifische Verwendung von useRef in React

Ich glaube, dass Leute, die Erfahrung mit React h...

jQuery implementiert den Fall der Schriftgrößenanpassung

In diesem Artikel wird der spezifische Code von j...

JavaScript-Beispielcode zum Ermitteln, ob eine Datei vorhanden ist

1. Geschäftsszenario Ich habe kürzlich Entwicklun...

Verwendung der MySQL SHOW STATUS-Anweisung

Um die Leistung von MySQL anzupassen und den Dien...

Detaillierte Schritte zur Dateisteuerungsverwaltung für Linux-Konten

Im Linux-System gibt es neben den verschiedenen, ...

Gemeinsame Nutzung von zwei Plug-Ins zur Übersetzung von Webseiten

Übersetzen Sie diese URL: http://translateth.is G...

Mehrere Möglichkeiten, Bilder in React-Projekte einzuführen

Der img-Tag führt das Bild ein Da React die Seite...

Beispiel für Javascript-Bubblesort

Inhaltsverzeichnis 1. Was ist Bubble Sort 2. Gebe...

Vertieftes Verständnis des Implementierungsprinzips des Require Loader

Vorwort Wir sagen oft, dass Node keine neue Progr...