Detaillierte Erläuterung der logischen Architektur von MySQL

Detaillierte Erläuterung der logischen Architektur von MySQL

1. Gesamtarchitekturdiagramm

Im Vergleich zu anderen Datenbanken unterscheidet sich MySQL darin, dass seine Architektur in einer Vielzahl unterschiedlicher Szenarien angewendet werden kann und gut funktioniert. Dies spiegelt sich hauptsächlich in der Speicher-Engine-Architektur wider. Die Plug-in-Speicher-Engine-Architektur trennt die Abfrageverarbeitung von anderen Systemaufgaben sowie der Datenspeicherung und -extraktion. Diese Architektur ermöglicht Ihnen die Auswahl der geeigneten Speicher-Engine basierend auf Ihren Geschäftsanforderungen und tatsächlichen Anforderungen.

Einführung jeder Schicht:

1.1 Verbindungsschicht

Die oberste Schicht besteht aus einer Reihe von Clients und Verbindungsdiensten, einschließlich lokaler Sock-Kommunikation und den meisten Client/Server-basierten Tools zur Erzielung einer ähnlichen TCP/IP-Kommunikation. Es erledigt hauptsächlich einige Aufgaben wie Verbindungsverarbeitung, Autorisierungsauthentifizierung und zugehörige Sicherheitslösungen. Das Konzept des Thread-Pools wird auf dieser Ebene eingeführt, um Threads für Clients bereitzustellen, die über eine Authentifizierung sicheren Zugriff haben. Auf dieser Ebene können auch SSL-basierte sichere Links implementiert werden. Der Server überprüft außerdem die Betriebsberechtigungen jedes Clients, der sicher auf ihn zugreift.

1.2 Service-Schicht

1.3. Motorschicht

Speicher-Engine-Schicht: Die Speicher-Engine ist eigentlich für die Speicherung und Extraktion von Daten in MySQL verantwortlich. Der Server kommuniziert über die API mit der Speicher-Engine. Verschiedene Speicher-Engines haben unterschiedliche Funktionen, sodass wir entsprechend unserem tatsächlichen Bedarf wählen können.

1.4. Speicherschicht

Die Datenspeicherschicht speichert hauptsächlich Daten auf dem Dateisystem, das auf dem Rohgerät ausgeführt wird, und vervollständigt die Interaktion mit der Speicher-Engine.

2. Profil anzeigen

Verwenden Sie „Profil anzeigen“, um den Ausführungszyklus von SQL anzuzeigen!

2.1 Profil aktivieren

Prüfen Sie, ob die Profilerstellung aktiviert ist: show variables like '%profiling%'

Wenn es nicht aktiviert ist, können Sie set profiling=1 ausführen, um es zu aktivieren!

2.2 Profile verwenden

Führen Sie show prifiles aus, um die aktuellsten Abfragen anzuzeigen.

Basierend auf Query_ID können Sie außerdem show profile cpu,block io for query Query_id ausführen, um die spezifischen Ausführungsschritte von SQL anzuzeigen.

2.3 Allgemeiner Abfrageprozess

Der Abfrageprozess von MySQL läuft ungefähr wie folgt ab:

Der MySQL-Client stellt über das Protokoll eine Verbindung zum MySQL-Server her, sendet eine Abfrageanweisung, überprüft zuerst den Abfragecache und gibt das Ergebnis direkt zurück, wenn es zutrifft, andernfalls analysiert er die Anweisung. Das heißt, bevor der Server die Abfrage analysiert, greift er zuerst auf den Abfragecache (Abfragecache) zu - er speichert SELECT-Anweisungen und entsprechende Abfrageergebnissätze. Wenn sich ein Abfrageergebnis bereits im Cache befindet, wird die Abfrage vom Server nicht erneut analysiert, optimiert oder ausgeführt. Es gibt einfach die Ergebnisse im Cache an den Benutzer zurück, was die Leistung des Systems erheblich verbessert.

Syntaxparser und Vorverarbeitung: Zunächst analysiert MySQL die SQL-Anweisung anhand von Schlüsselwörtern und generiert einen entsprechenden „Analysebaum“. Der MySQL-Parser validiert und analysiert die Abfrage unter Verwendung der MySQL-Syntaxregeln. Der Präprozessor überprüft außerdem, ob die analysierte Zahl gemäß einiger MySQL-Regeln zulässig ist.

Abfrageoptimierer: Wenn der Analysebaum als gültig erachtet wird, wird er vom Optimierer in einen Ausführungsplan umgewandelt. Eine Abfrage kann auf viele Arten ausgeführt werden und dennoch das gleiche Ergebnis zurückgeben. Die Rolle des Optimierers besteht darin, den besten Ausführungsplan darunter zu finden. .

Dann verwendet MySQL standardmäßig den BTREE-Index und die allgemeine Anweisung lautet: Egal, wie Sie mit SQL herumspielen, zumindest im Moment verwendet MySQL höchstens einen Index in der Tabelle.

2.4 SQL-Ausführungsreihenfolge

Handschriftliche Bestellung:

Die tatsächliche Ausführungsreihenfolge lautet:

Mit der Aktualisierung der MySQL-Versionen wird auch der Optimierer ständig aktualisiert. Der Optimierer analysiert den unterschiedlichen Leistungsverbrauch, der durch unterschiedliche Ausführungsreihenfolgen verursacht wird, und passt die Ausführungsreihenfolge dynamisch an. Das Folgende ist eine häufige Abfragesequenz:

2.5 MyISAM und InnoDB

show engines : Alle Datenbank-Engines anzeigen

show variables like '%storage_engine%' , um die Standarddatenbank-Engine anzuzeigen

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

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
  • Zusammenfassung der Wissenspunkte zur MySQL-Architektur
  • Details zur MySQL-Datenbankarchitektur

<<:  Detailliertes Beispiel für SpringBoot + nginx zum Erreichen der Ressourcen-Upload-Funktion

>>:  Detaillierte Erläuterung des Beobachtermodus ausgehend von der Komponentenwertübertragung von Vue

Artikel empfehlen

Lösung zum Vergessen des MySQL-Datenbankkennworts

Möglicherweise haben Sie gerade ein MySQL-Passwor...

Mit CSS3 implementierte Schaltfläche zum Hovern von Bildern

Ergebnis:Implementierungscode html <ul Klasse=...

Anweisungen zum Erlernen von Vue

Inhaltsverzeichnis 1. v-Text (v-Befehlsname = „Va...

Analysieren Sie CSS, um die Farbfunktion des Bildthemas zu extrahieren (Tipps)

Hintergrund Alles begann, als ein Klassenkamerad ...

Einfaches Webdesign-Konzept – Farbabstimmung

(I) Grundkonzepte der Farbabstimmung auf Webseiten...

Implementierung der CSS-Variableneinfügung im Vue3-Stil

Inhaltsverzeichnis Zusammenfassung Einfaches Beis...

Die Umsetzung von Youdas neuem Petite-Vue

Inhaltsverzeichnis Vorwort Einführung Live Einfac...

Docker stellt Containern dynamisch Ports zur Verfügung

Zeigen Sie die IP-Adresse des Containers an docke...

Zusammenfassung der Wissenspunkte des Nodejs-Clustermoduls und Anwendungsbeispiele

Der Interviewer wird Sie manchmal fragen: „Sagen ...