Da ich MySQL schon so lange verwende, glaube ich, dass ich die SQL-Anweisungen bereits auswendig kann. Also habe ich versucht, das Ausführungsprinzip zu verstehen. Im Folgenden sind die wichtigsten Punkte aufgeführt, die ich während des Lernprozesses zusammengefasst habe. Solange es sich um eine B/S-Architektur handelt, wird es einen Client und einen Server geben, und MySQL ist keine Ausnahme. Zunächst sendet der Client eine Anforderung, bei der es sich um eine Abfrageanforderung (Select) handelt, und das Objekt der Anforderung ist der Server. Wie verarbeitet der Server diese Abfragefunktion? Logische SchichtungZunächst können wir uns den Server als großen Container mit vier Strukturschichten vorstellen. Wenn eine Anfrage eingeht, werden diese vier Schichten ausgeführt und erst nach einer Ausführung wird das gewünschte Ergebnis an uns zurückgegeben. Erste Schicht: Verbindungsschicht Mit anderen Worten, wenn unser Client eine Auswahl sendet, wird diese zur Verarbeitung direkt an die Verbindungsschicht übergeben und ihre Aufgabe besteht darin, Dienste für die Verbindung mit dem Client bereitzustellen. Die Verbindungsschicht stellt lediglich eine Verbindung mit dem Client her und erhält unsere Anfrage (Select), verarbeitet sie jedoch nicht selbst, da sie nur Verbindungen herstellt. Wer wird sie also verarbeiten? Gehen Sie weiter nach unten. Zweite Schicht: Serviceschicht Die Serviceschicht kann zwei Dinge tun: 1. Bieten Sie Benutzern verschiedene Schnittstellen, die verwendet werden können Die Abfrage von gerade ist beispielsweise, dass unsere üblichen CRUD-Operationen (Erstellen, Löschen, Ändern und Abfragen) alle hier sind. Die Verbindungsschicht erhält diese Auswahl und gibt sie direkt an die Serviceschicht weiter. Sie stellt nicht nur eine Schnittstelle für den Benutzer bereit, sondern auch etwas, das als SQL-Optimierer bezeichnet wird. 2. MySQL-Optimierer Wenn wir eine SQL-Anweisung zur Ausführung schreiben, wird der Optimierer nach der Ausführung hier (zweite Ebene) denken, dass die Leistung der von mir geschriebenen SQL-Anweisung nicht gut genug ist. Zu diesem Zeitpunkt wird der Optimierer nach der Ausführung eine SQL-Anweisung schreiben, die der von mir geschriebenen entspricht, um sie zu ersetzen. Diese äquivalente Schreibmethode dient dazu, die von Ihnen geschriebene SQL-Anweisung durch diesen Optimierer zu optimieren. Da er denkt, dass die Leistung Ihrer SQL-Anweisung zu niedrig ist, optimiert er Ihre SQL-Anweisung. Diese Optimierungsoperation führt der Optimierer aus; Natürlich kann der Optimierer SQL-Anweisungen optimieren, was gewisse Vorteile für die Leistung haben kann, aber es hat auch Nachteile! Zum Beispiel: „Wenn Sie selbst optimieren, ist es a, aber die tatsächliche Ausführung ist nicht a, weil der Optimierer denkt, dass Ihre Optimierung nicht gut genug ist, und das Ergebnis ist, dass aus a b wird. Mit anderen Worten, ich habe eindeutig a geschrieben, aber das Programm führt b aus.“ Dies würde in unserem Entwicklungsprozess zu Verwirrung führen, da dieser bereits optimiert ist. Was Sie geschrieben haben, stimmt nicht mehr mit dem überein, was Sie vorher geschrieben haben. Die dritte Schicht: Motorschicht Es bietet verschiedene Möglichkeiten zum Speichern von Daten, die gängigsten sind: lnnoDB, MylSAM Wichtige Unterschiede:lnnoDB [MySQL-Standard]: Bei der Entwicklung war es transaktionsorientiert [geeignet für Operationen mit hoher Parallelität]. Prinzip: Da es sich um eine Zeilensperre handelt, muss ich jedes Datenelement sperren. Wenn ich zu viele Sperren vornehme, verringert sich die Leistung. Obwohl die Leistung abnimmt, ist es für Operationen mit hoher Parallelität geeignet und nicht fehleranfällig. MylSAM: Leistungsprioritätsprinzip: Da es sich um eine Tabellensperre handelt, sind die zehn Daten in der Tabelle nicht betroffen und die zehn Sperren werden gleichzeitig abgeschlossen, sodass die Leistung schnell ist Die Leistungspriorität ist leicht zu verstehen. Wenn beispielsweise 10.000 Daten vorliegen, ist die Effizienz umso höher, je schneller sie verarbeitet werden. Die Dinge sollen einige gleichzeitige Vorgänge verhindern. Zu viel Parallelität kann zu Fehlern führen, daher ist es für Vorgänge mit hoher Parallelität geeignet. Wenn Sie also bei einem Projekt oder beim Erstellen einer Datenbank die Leistung im Vordergrund steht, wählen Sie die MySAM-Engine. Wenn es sich um einen Vorgang mit hoher Parallelität handelt, wählen Sie die lnnoDB-Engine. Im Folgenden werde ich erläutern, wie Sie die Engine ändern können. Schicht 4: Speicherschicht Dies ist leicht zu verstehen. Die endgültigen Daten werden in der Speicherschicht gespeichert. Nachdem wir über die vier Schichten gesprochen haben, wollen wir unsere Gedanken klären Zuerst sendet der Client eine Select-Operation ---> die Verbindungsschicht empfängt sie und sendet sie an die Serviceschicht ---> die Serviceschicht optimiert Ihre Abfrage und gibt das Optimierungsergebnis an die Engineschicht weiter ---> wählen Sie die Engine der aktuellen Datenbank aus. Nach Auswahl der Engine sendet die Engine die endgültigen Daten an die Speicherschicht ---> die Speicherschicht verwendet die Speicherschicht zum Speichern von Daten Engine anzeigenEngines anzeigen; Alle von MySQL unterstützten Engines anzeigen Ausführungsergebnis: Ja bedeutet Unterstützung. In der InnoDB-Unterstützungsoption ist es DEFAULT (Standard), was bedeutet, dass beim Erstellen einer Datenbank InnoDB die Standard-Engine ist. Zeigen Sie die aktuell von der Datenbank verwendete Engine an Variablen wie „%storage_engine%“ anzeigen; Ausführungsergebnis: Offensichtlich verwenden wir derzeit InnoDB Gibt die Engine für Datenbankobjekte an Ich erstelle jetzt eine Tabelle. Ich verwende für diese Tabelle nicht InnoDB, sondern MySAM, da ich der Leistung Priorität einräumen möchte. Jetzt verwende ich die MySQL-Befehlszeile, um die Tabelle zu erstellen 1. Datenbankbefehl angeben: Datenbanknamen verwenden 2. Erstellen Sie eine einfache Tabelle in der angegebenen Datenbank Tabelle tb erstellen( Ich würde int (4), Name varchar(5), Primärschlüssel (ID) )ENGINE=MyISAM; Ausführungsergebnis: Es zeigt an, dass die Erstellung erfolgreich war und dass es sich bei der Engine der Tabelle um die von uns manuell angegebene und nicht um die Standard-Engine handelt. Oben sind alle Wissenspunkte zu MySQL-Ausführungsprinzipien, logischer Schichtung und dem Ändern der Datenbankverarbeitungs-Engine aufgeführt. Vielen Dank fürs Lesen und Ihre Unterstützung für 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
>>: Miniprogramm zur Implementierung einer kreisförmigen Text-Scrolling-Animation
Normalerweise wählt ein CSS-Selektor von oben nac...
Wie können Sie in MySQL die Berechtigungen anzeig...
Mehrere Spalten haben zunächst unterschiedliche I...
Hintergrund Das Abrufen des langsamen Abfrageprot...
Das im Projekt aufgetretene Layoutproblem unregel...
So setzen Sie den Anfangswert der Auto-Increment-...
Vorwort Ich glaube, dass viele Studenten bereits ...
CSS steuert den Druckstil von Webseiten : Verwende...
1. Wenn das mobile Endgerät die Listenverschiebun...
Sowohl die Optionen „Nur lesen“ als auch „Deaktiv...
Einführung Als ich mehr über die Datenbanktheorie...
erster Schritt Einmaliges Löschen mit der integri...
Im vorherigen Artikel haben wir die Netzwerkerken...
Vorwort Glauben Sie mir, solange Sie sich an die ...
Inhaltsverzeichnis Veränderungen im Lebenszyklus ...