Einführung in die logische MySQL-Architektur Übersicht 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. Controller-Schicht: Die Geschäftslogik wird verarbeitet in: Steckbare Speicher-Engine Computerhardware auf Dateispeicherebene 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. 2. Service-Schicht 2.1 Management Services & Utilities: Tools zur Systemverwaltung und -steuerung 2.2 SQL-Schnittstelle: Die SQL-Schnittstelle akzeptiert die SQL-Befehle des Benutzers und gibt die Ergebnisse zurück, die der Benutzer abfragen muss. Wählen Sie beispielsweise aus den Aufrufen der SQL-Schnittstelle 2.3 Parser: Parser 2.4 Optimierer: Abfrage-Optimierer. 2.5 Cache und Puffer: Abfrage-Cache. 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. MyISAM und InnoDB werden später eingeführt 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. Allgemeine Übersicht Abfrage-Flussdiagramm: Zunächst läuft der Abfragevorgang von MySQL ungefähr wie folgt ab:
MySQL-Speicher-Engine Befehle anzeigen 1 So zeigen Sie mit dem Befehl an Prüfen Sie, welche Speicher-Engine Ihr MySQL derzeit bereitstellt: mysql> Engines anzeigen; InnoDB-Standard, unterstützt Transaktionen, Fremdschlüssel und Zeilensperren Überprüfen Sie die aktuelle Standard-Speicher-Engine Ihres MySQL: mysql> Variablen wie „%storage_engine%“ anzeigen; Der Standardwert ist InnoDB Einführung in die einzelnen Motoren 1. InnoDB-Speicher-Engine InnoDB ist die Standardtransaktions-Engine für MySQL, die für die Verarbeitung einer großen Anzahl kurzlebiger Transaktionen ausgelegt ist. Sofern es keinen ganz besonderen Grund für die Verwendung einer anderen Speicher-Engine gibt, sollte der InnoDB-Engine Vorrang eingeräumt werden. Zeilensperren, geeignet für Situationen mit hoher Parallelität 2. MyISAM-Speicher-Engine MyISAM bietet eine Vielzahl von Funktionen, darunter Volltextindizierung, Komprimierung, räumliche Funktionen (GIS) usw., aber MyISAM unterstützt keine Transaktionen und Sperren auf Zeilenebene (MyISAM sperrt beim Ändern der Tabelle die gesamte Tabelle). Ein unbestreitbarer Fehler besteht darin, dass es nach einem Absturz nicht sicher wiederhergestellt werden kann. 3. Archivierungs-Engine Die Archivspeicher-Engine unterstützt nur INSERT- und SELECT-Operationen und keine Indizes vor MySQL 5.1. 4. Blackhole-Engine Die Blackhole-Engine implementiert keinen Speichermechanismus. Sie verwirft alle eingegebenen Daten, ohne sie zu speichern. Der Server zeichnet jedoch die Protokolle der Blackhole-Tabelle auf, sodass diese zum Kopieren der Daten in die Sicherungsdatenbank oder zum einfachen Aufzeichnen im Protokoll verwendet werden können. Allerdings ist diese Anwendungsmethode mit zahlreichen Problemen verbunden und wird daher nicht empfohlen. 5. CSV-Engine Die CSV-Engine kann gewöhnliche CSV-Dateien als MySQL-Tabellen verarbeiten, unterstützt jedoch keine Indizes. 6. Speicher-Engine Wenn Sie schnell auf Daten zugreifen müssen und die Daten nicht geändert werden und nach einem Neustart nicht verloren gehen, ist die Verwendung einer Speichertabelle sehr nützlich. Speichertabellen sind mindestens um eine Größenordnung schneller als MyISAM-Tabellen. (Es ist schneller, eine professionelle Speicherdatenbank wie Redis zu verwenden.) 7. Föderierte Engine Die Federated Engine ist ein Proxy für den Zugriff auf andere MySQL-Server. Obwohl diese Engine eine gute Flexibilität zwischen den Servern zu bieten scheint, verursacht sie auch oft Probleme, weshalb sie standardmäßig deaktiviert ist. MyISAM und InnoDB (wichtigste Punkte)
Der InnoDB-Index verwendet B+TREE. Der MyISAM-Index verwendet B-Tree. Welches sollte ich für Alibaba oder Taobao verwenden? • Percona hat Verbesserungen am MySQL-Datenbankserver vorgenommen, die im Vergleich zu MySQL erhebliche Verbesserungen bei Funktionalität und Leistung aufweisen. Diese Version verbessert die Leistung von InnoDB unter Hochlastbedingungen, bietet einige sehr nützliche Leistungsdiagnosetools für DBAs und verfügt über mehr Parameter und Befehle zur Steuerung des Serververhaltens. •Das Unternehmen hat eine neue Speicher-Engine namens XtraDB entwickelt, die InnoDB vollständig ersetzen kann und über eine bessere Leistung und Parallelität verfügt. •Die meisten MySQL-Datenbanken von Alibaba sind tatsächlich modifizierte Versionen des Percona-Prototyps. Oben finden Sie eine Einführung in die logische Architektur von MySQL und eine detaillierte Integration der MySQL-Speicher-Engine, die vom Herausgeber vorgestellt wurde. Ich hoffe, dass es für alle hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des Whereis-Beispiels zum Suchen eines bestimmten Programms in Linux
>>: Lokale Vue-Komponentendatenfreigabe Vue.observable()-Nutzung
Wir alle wissen, dass wir den Befehl mkdir verwen...
GTID-basierte Replikation Einführung Die GTID-bas...
Ich war in den letzten beiden Tagen etwas beschäf...
23. April 2020: Heute können Sie mit Ubuntu 20.04...
MySQL 5.7.8 und höher unterstützt nun einen nativ...
Hinweis: Das System ist Ubuntu 14.04LTS, ein 32-B...
Auf immer mehr Websites wird HTML4 durch XHTML ers...
1. Replikationsprinzip Der Masterserver schreibt ...
<br />Original: Progressive Enhancement vers...
Ich habe vor Kurzem Kafka gelernt. Als ich mich d...
Die GtkTreeView-Komponente ist eine erweiterte Ko...
Frameset-Seiten unterscheiden sich etwas von norm...
Routing-Konfigurationsbefehle unter Linux 1. Host...
Hallo zusammen, heute werde ich mit Ihnen die WeP...
Vorwort Ein Reverse-Proxy ist ein Server, der übe...