1. Was ist das?
1.1 RDBMS
1. Daten erscheinen in Tabellenform 2. Jede Zeile ist ein Datensatzname 3. Jede Spalte ist das Datenfeld, das dem Datensatznamen entspricht 4. Viele Zeilen und Spalten bilden ein Formular 5. Mehrere Formulare bilden die Datenbank 1.2 MySQL-Datenbank
2. Arbeitsmechanismus2.1 Gesamtarchitekturdiagramm (C/S-Architektur)
Ein allgemeines Toolkit, das die Verbindung zu einem MySQL-Server ermöglicht
MySQL-Instanz, der MySQL-Serverprozess, der tatsächlich Datenspeicher- und Datenverarbeitungsfunktionen bereitstellt
Der MySQL-Server-Daemon läuft im Hintergrund. Es verwaltet Clientanfragen. mysqld ist ein Multithread-Prozess, der die Verbindung mehrerer Sitzungen zulässt, auf Ports lauscht und MySQL-Instanzen verwaltet.
Der von MySQL benötigte Speicherplatz ist dynamisch, beispielsweise innodb_buffer_pool_size (ab 5.7.5), key_buffer_size. Jede Sitzung hat einen einzigartigen Ausführungsplan und wir können Datensätze nur innerhalb desselben Sitzungsumfangs teilen.
Jeder Clientverbindung wird eine Sitzung zugewiesen, die dynamisch zugewiesen und wiederverwendet wird. Wird zur Abfrageverarbeitung verwendet. Jede Sitzung verfügt gleichzeitig über einen Puffer. Jede Sitzung wird als Thread ausgeführt
Erkennen Sie die SQL-Anweisungssyntax und generieren Sie SQL_ID für jede SQL-Anweisung. In dieser Phase erfolgt auch die Benutzerauthentifizierung.
Erstellen Sie einen effizienten Ausführungsplan (abhängig von der Speicher-Engine). Die Abfrage wird neu geschrieben. Beispiel: InnoDB verfügt über einen gemeinsam genutzten Puffer, sodass der Optimierer zuerst die vorab zwischengespeicherten Daten extrahiert. Durch die Verwendung des Tabellenstatistik-Optimierers wird ein Ausführungsplan für die SQL-Abfrage generiert. In dieser Phase werden auch die Benutzerberechtigungen überprüft.
Zwischenspeichern von Objektmetadaten und Statistiken
Teilen Sie dieselbe Abfrageanweisung im Speicher. Wenn die exakt gleiche Abfrage den Cache erreicht, ruft der MySQL-Server das Ergebnis direkt aus dem Cache ab. Der Cache wird zwischen Sitzungen gemeinsam genutzt, sodass ein für einen Client generierter Ergebnissatz von einem anderen Client verwendet werden kann. Der Abfragecache basiert auf SQL_ID. Das Schreiben von SELECT-Anweisungen in eine Ansicht ist ein gutes Beispiel für die Zwischenspeicherung von Abfragen.
Cache-Tabellenindex. MySQL-Schlüssel sind Indizes. Wenn die Indexdatengröße klein ist, werden die Indexstruktur und die Blattknoten (die die Indexdaten speichern) zwischengespeichert. Wenn der Index groß ist, wird nur die Indexstruktur zwischengespeichert, die normalerweise von der MyISAM-Speicher-Engine verwendet wird 2.2 Netzwerkprotokoll2.2.1 Kommunikationsprotokoll
2.2.2 NachrichtenformatProtokollheader: Jeder Protokollheader hat 4 Bytes
Die ersten drei Bytes geben die Länge des Datenteils an (ohne Protokollheader). Die maximale Länge, die durch drei Bytes dargestellt werden kann, beträgt 16M-1 (2^24 - 1). Wenn der zu sendende Datenteil diese Länge überschreitet, muss er entpackt werden, wobei jede Länge von 16M-1 ein Paket darstellt. Wenn das empfangende Ende beim Datenempfang feststellt, dass die Paketlänge 16M-1 beträgt, bedeutet dies, dass weitere Daten folgen, bis das Datenpaket mit einer Länge von <16M-1 empfangen wird. Dies bedeutet, dass die Datenlänge des letzten Pakets 0 sein kann.
1 Byte, beginnend bei 0 und um eins erhöhen. Wenn ein neues SQL gesendet und die Datenbank erneut verbunden wird, wird der Wert auf 0 gelöscht (Funktion sql/Net_serv.cc: net_clear). Datentyp: Neben Ganzzahlen oder Zeichenfolgen mit fester Länge gibt es zahlreiche weitere Datentypen. (Speicherung und Zugriff auf Felddaten mit fester Länge: include/Mybyte_order.h: Wert intstore speichern, Wert abrufen: intkorr, Mehrbyte-Verarbeitung basiert auf Little-Endian-Priorität) 1. Der Zugriff auf Integer mit variabler Länge auf diesen Datentyp erfolgt in der Funktion: sql-common/Pack.c: Integer speichern: net_store_length Integer lesen: net_field_length Wenn der Wert kleiner als 251 ist, speichern Sie den Wert direkt in einem Byte. Wenn 251 <= Wert < 2 ^ 16, verwenden Sie 3 Bytes zum Speichern, das erste Byte ist 252 und die anderen 2 Bytes speichern den ganzzahligen Inhalt. Wenn 2 ^ 16 <= Wert < 2 ^ 24, verwenden Sie 4 Bytes zum Speichern, das erste Byte ist 252 und die anderen 3 Bytes speichern den ganzzahligen Inhalt. Wenn 2 ^ 24 <= Wert < 2 ^ 64, verwenden Sie 9 Bytes zum Speichern, das erste Byte ist 255 und die anderen 8 Bytes speichern den ganzzahligen Inhalt. Wenn das erste Byte 251 ist, bedeutet dies, dass das ganzzahlige Feld null ist. Wenn das erste Byte 255 ist, bedeutet dies, dass dieses Byte das erste Byte des ERR-Pakets ist. 2. Zeichenfolge mit codierbarer Länge Die Länge der Zeichenfolge wird mithilfe einer Ganzzahl mit variabler Länge codiert. 2.3 SQL-Syntax
Abfrage- und Aktualisierungsanweisungen bilden den DML-Teil von SQL: SELECT – Daten aus einer Datenbanktabelle abrufen. UPDATE – Daten in einer Datenbanktabelle aktualisieren. DELETE – Daten aus einer Datenbanktabelle löschen. INSERT INTO – Daten in eine Datenbanktabelle einfügen. Der Data Definition Language (DDL)-Teil von SQL gibt uns die Möglichkeit, Tabellen zu erstellen oder zu löschen. Wir können auch Indizes (Schlüssel) definieren, Links zwischen Tabellen angeben und Einschränkungen zwischen Tabellen auferlegen. Die wichtigsten DDL-Anweisungen in SQL: CREATE DATABASE - erstellt eine neue DatenbankALTER DATABASE - ändert eine DatenbankCREATE TABLE - erstellt eine neue TabelleALTER TABLE - ändert (verändert) eine DatenbanktabelleDROP TABLE - löscht eine TabelleCREATE INDEX - erstellt einen Index (Suchschlüssel)DROP INDEX - löscht einen Index 3. ZusammenfassungIn diesem Artikel wird MySQL aus der Makro- und Nutzungsperspektive erläutert und später ausführlicher besprochen. Bitte achten Sie auch mehr auf weitere Inhalte auf 123WORDPRESS.COM Das könnte Sie auch interessieren:
|
<<: Beim Bereitstellen von rabbitmq mit Docker sind zwei Probleme aufgetreten
>>: HTML+CSS zum Erstellen eines einfachen Fortschrittsbalkens
Installations-Tutorial zur kostenlosen Installati...
Dieser Artikel beschreibt anhand von Beispielen, ...
Der <area>-Tag wird vor allem in Imagemaps ...
ab-Befehlsprinzip Der Befehl ab von Apache simuli...
Derzeit werden fast alle großen Websites und Anwe...
Systemumgebung: Ubuntu 16.04LTS In diesem Artikel...
Vorwort Durch das Hinzufügen einer Drag & Dro...
Dieser Artikel zeichnet das Installations-Grafik-...
Inhaltsverzeichnis Grundlegende Konzepte von Dock...
Grafisches Tutorial zur Installation und Konfigur...
Vorwort Die MySQL-Datenbanksperre ist ein wichtig...
Vorwort Im Linux-Kernel ist Netfilter ein Subsyst...
Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...
Vorwort InnoDB gehört in MySQL zur Speicher-Engin...
1. SSH-Remoteverwaltung SSH ist ein sicheres Kana...