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

Lösen Sie das Problem der Angabe der UDP-Portnummer im Docker

Wenn Docker einen Container startet, gibt es den ...

Detaillierte Erklärung, wie Sie den Speicherverbrauch in MySql reduzieren können

Vorwort Standardmäßig initialisiert MySQL einen g...

Windows 10 ist zu schwierig zu verwenden. Wie passen Sie Ihr Ubuntu an?

Autor | Herausgeber Awen | Produziert von Tu Min ...

Detaillierte Erklärung zur Verwendung von $emit in Vue.js

1. Übergeordnete Komponenten können Props verwend...

Definition und Funktion des zoom:1-Attributs in CSS

Heute wurde ich gefragt, wozu das Zoom-Attribut i...

JavaScript verwendet Promise zur Verarbeitung mehrerer wiederholter Anfragen

1. Warum diesen Artikel schreiben? Sie haben sich...

Zusammenfassung der Befehle zur Benutzerverwaltung im Linux-System

Benutzer- und Gruppenverwaltung 1. Grundlegende K...