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
Vorwort Ich habe gerade einen neuen VPS gekauft. ...
Code kopieren Der Code lautet wie folgt: li {Brei...
In diesem Artikel finden Sie das Installations-Tu...
Ja, CSS hat auch reguläre Ausdrücke (Amen) Zwei l...
Einführung Wenn eine große Anzahl an Systemen ins...
Als ich ein WeChat-Applet-Projekt schrieb, gab es...
Inhaltsverzeichnis 1. Was ist ein regulärer Ausdr...
Der Autor stieß kürzlich bei seiner Arbeit auf ei...
Da der Einfluss des Unternehmens wächst und seine...
Inhaltsverzeichnis Docker-Installation Nvidia-Doc...
Dieser Artikel beschreibt anhand eines Beispiels ...
Inhaltsverzeichnis 1. istPrototyp von() Beispiel ...
Was ist my.ini? my.ini ist die in der MySQL-Daten...
Code kopieren Der Code lautet wie folgt: <!DOC...
Aus verschiedenen Gründen müssen Sie manchmal den...