Detaillierte Einführung in die MySQL-Theorie und Grundkenntnisse
In diesem Artikel werden Ihnen die Theorie und die Grundkenntnisse von MySQL ausführlich vorgestellt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
MySQL-Architektur
1. Netzwerkverbindungsschicht
Client Connectors: Bietet Unterstützung für die Einrichtung mit dem MySQL-Server. Derzeit werden fast alle gängigen serverseitigen Programmiertechnologien unterstützt, wie z. B. gängiges Java, C, Python, .NET usw., die über ihre jeweiligen API-Technologien Verbindungen mit MySQL herstellen. 2. Serviceschicht (MySQL Server)
Die Serviceschicht ist Der Kern von MySQL Server besteht hauptsächlich aus sechs Teilen: Systemverwaltungs- und Kontrolltools, Verbindungspool, SQL-Schnittstelle, Parser, Abfrageoptimierer und Cache.
Verbindungspool: Verantwortlich für die Speicherung und Verwaltung der Verbindung zwischen dem Client und der Datenbank. Ein Thread ist für die Verwaltung einer Verbindung verantwortlich. Systemverwaltungs- und Kontrolltools (Management Services & Utilities): wie Sicherung und Wiederherstellung, Sicherheitsverwaltung, Clusterverwaltung usw. SQL-Schnittstelle (SQL-Schnittstelle): Wird verwendet, um verschiedene vom Client gesendete SQL-Befehle zu akzeptieren und zurückzugeben Abfrageergebnis des Benutzers. Wie DML, DDL, gespeicherte Prozeduren, Ansichten, Trigger usw. Parser (Parser): Verantwortlich für das Parsen des angeforderten SQL, um einen „Analysebaum“ zu generieren. Überprüfen Sie dann weiter, ob der Analysebaum gemäß einigen MySQL-Regeln zulässig ist. Abfrageoptimierer (Optimierer): Wenn der „Analysebaum“ die Parser-Grammatikprüfung besteht, wird er an den Optimierer übergeben, um ihn in einen Ausführungsplan umzuwandeln und dann mit der Speicher-Engine zu interagieren. select uid,name from user where gender=1;Select-》Projection-》Join strategy1)select wählt zuerst basierend auf der where-Anweisung aus, anstatt alle Daten abzufragen und dann zu filtern2)select-Abfrage Führen Sie basierend auf UID und Name eine Attributprojektion durch, anstatt alle Felder herauszunehmen. 3) Verbinden Sie die vorherige Auswahl und Projektion, um schließlich das Abfrageergebnis zu generieren. Cache (Cache und Puffer): Der Caching-Mechanismus besteht aus einer Reihe kleiner Caches. Zum Beispiel Tabellencache, Datensatzcache, Berechtigungscache, Enginecache usw. Wenn der Abfrage-Cache ein Treffer-Abfrageergebnis hat, kann die Abfrageanweisung Daten direkt aus dem Abfrage-Cache abrufen.3. Storage Engine Layer (Pluggable Storage Engines)
Die Storage Engine ist für die Speicherung und Extraktion von Daten in MySQL verantwortlich und interagiert mit den zugrunde liegenden Systemdateien. Die MySQL-Speicher-Engine ist ein Plug-in. Die Abfrageausführungs-Engine im Server kommuniziert mit der Speicher-Engine über eine Schnittstelle. Die Schnittstelle schirmt die Unterschiede zwischen verschiedenen Speicher-Engines ab. Mittlerweile gibt es viele Speicher-Engines, jede mit ihren eigenen Eigenschaften. Die häufigsten sind MyISAM und InnoDB.
4. Systemdateischicht (Dateisystem)
Diese Schicht ist für die Speicherung von Datenbankdaten und Protokollen im Dateisystem und die Vervollständigung der Interaktion mit der Speicher-Engine verantwortlich. Sie ist die physische Speicherschicht von Dateien. Enthält hauptsächlich Protokolldateien, Datendateien, Konfigurationsdateien, PID-Dateien, Socket-Dateien usw.
Protokolldatei
Zeichnen Sie alle SQL-Abfragen auf, deren Ausführungszeit abgelaufen ist. Der Standardwert beträgt 10 Sekunden.
Variablen wie „%slow_query%“ anzeigen; //Ob aktiviert werden soll
Variablen wie „%long_query_time%“ anzeigen; //Dauer
Konfigurationsdatei
wird zum Speichern aller MySQL-Konfigurationsinformationsdateien verwendet, z. cnf, my.ini usw.
Datendatei
db.opt-Datei: Zeichnet den von dieser Bibliothek verwendeten Standardzeichensatz und die Überprüfungsregeln auf.
FRM-Datei: Speichert Metadaten (Meta)-Informationen zur Tabelle, einschließlich Definitionsinformationen der Tabellenstruktur usw. Jede Tabelle verfügt über eine FRM-Datei.
MYD-Datei: Sie ist für die MyISAM-Speicher-Engine bestimmt und speichert die Daten der MyISAM-Tabelle. Jede Tabelle verfügt über eine .MYD-Datei.
MYI-Datei: Sie ist der MyISAM-Speicher-Engine gewidmet und speichert indexbezogene Informationen der MyISAM-Tabelle. Jede MyISAM-Tabelle entspricht einer .MYI-Datei.
IBD-Datei und IBDATA-Datei: Speichern Sie InnoDB-Datendateien (einschließlich Indizes). Die InnoDB-Speicher-Engine verfügt über zwei Tabellenbereichsmodi: exklusiven Tabellenbereich und gemeinsam genutzten Tabellenbereich. Exklusive Tabellenbereiche verwenden .ibd-Dateien zum Speichern von Daten, und jede InnoDB-Tabelle entspricht einer .ibd-Datei. Gemeinsam genutzte Tabellenbereiche verwenden .ibdata-Dateien und alle Tabellen verwenden eine (oder mehrere, selbst konfigurierte) .ibdata-Dateien.
ibdata1-Datei: Systemtabellenbereichsdatendatei, in der Tabellenmetadaten, Rückgängig-Protokolle usw. gespeichert werden.
ib_logfile0, ib_logfile1 Dateien: Redo-Log-Protokolldateien.
PID-Datei
Die PID-Datei ist eine Prozessdatei der mysqld-Anwendung in der Unix/Linux-Umgebung. Wie viele andere Unix/Linux-Serverprogramme speichert sie ihre eigene Prozess-ID.
Socket-Datei
Socket-Datei ist auch in einer Unix/Linux-Umgebung verfügbar. Benutzer können Unix Socket direkt verwenden, um eine Verbindung zu MySQL herzustellen, wenn eine Client-Verbindung in einer Unix/Linux-Umgebung hergestellt wird, ohne über ein TCP/IP-Netzwerk zu gehen.
InnoDB und MyISAM
Transaktionen und Fremdschlüssel
InnoDB unterstützt Transaktionen und Fremdschlüssel, verfügt über Sicherheit und Integrität und ist für eine große Anzahl von Einfüge- oder Aktualisierungsvorgängen geeignet.
MyISAM unterstützt keine Transaktionen und Fremdschlüssel Es bietet Hochgeschwindigkeitsspeicherung und -abruf und ist für eine große Anzahl ausgewählter Abfragevorgänge geeignet.
Sperrmechanismus
InnoDB unterstützt Sperren auf Zeilenebene, um bestimmte Datensätze zu sperren. Die Sperrung erfolgt indexbasiert.
MyISAM unterstützt das Sperren auf Tabellenebene, also das Sperren der gesamten Tabelle.
Indexstruktur
InnoDB verwendet einen Clustered-Index (Clustered-Index). Der Index und die Datensätze werden zusammen gespeichert, wobei sowohl der Index als auch die Datensätze zwischengespeichert werden.
MyISAM verwendet einen nicht gruppierten Index (nicht gruppierter Index), und Index und Datensatz sind getrennt.
Funktion zur Parallelitätsverarbeitung
MyISAM verwendet Tabellensperren, was zu einer geringen Parallelitätsrate von Schreibvorgängen, keiner Blockierung zwischen Lesevorgängen und einer Blockierung von Lese- und Schreibvorgängen führt.
InnoDB-Lese- und Schreibblockierung kann mit der Isolationsstufe in Zusammenhang stehen, und Multi-Version-Parallelitätskontrolle (MVCC) kann zur Unterstützung hoher Parallelität verwendet werden
Speicherdateien
Die InnoDB-Tabelle entspricht zwei Dateien, einer .frm Tabellenstrukturdatei und eine .ibd-Datendatei. Die InnoDB-Tabelle unterstützt bis zu 64 TB;
MyISAM-Tabelle entspricht drei Dateien, einer .frm-Tabellenstrukturdatei, einer MYD-Tabellendatendatei und einer .MYI-Indexdatei. Ab MySQL 5.0 beträgt das Standardlimit 256 TB.
Der Unterschied zwischen Redo Log und Binlog
Redo Log ist eine Funktion der InnoDB-Engine, während Binlog eine integrierte Funktion von MySQL Server ist und in Binärdateien aufgezeichnet wird.
Redo Log ist ein physisches Protokoll, das den Aktualisierungsstatusinhalt der Datenseite aufzeichnet. Binlog ist ein logisches Protokoll, das den Aktualisierungsprozess aufzeichnet.
Redo-Log wird zyklisch geschrieben, die Protokollspeicherplatzgröße ist festgelegt, Binlog wird angehängt geschrieben, nachdem eines geschrieben wurde, wird das nächste geschrieben und es wird nicht überschrieben.
Redo Log kann zur automatischen Wiederherstellung von Transaktionsdaten nach einem abnormalen Serverausfall verwendet werden. Binlog kann für die Master-Slave-Replikation und Datenwiederherstellung verwendet werden. Binlog verfügt nicht über automatische Absturzsicherungsfunktionen.
In der Anwendung können mehrere Indizes zur Slave-Datenbank hinzugefügt werden, um Abfragen zu optimieren. Diese Indizes können in der Hauptdatenbank weggelassen werden, um die Schreibeffizienz zu verbessern.
Trennschema für Lesen und Schreiben
1 Lesen Sie direkt nach dem Schreiben
Nach dem Schreiben in die Datenbank wird der Lesevorgang innerhalb eines bestimmten Zeitraums zur Hauptdatenbank weitergeleitet, und dann greift der Lesevorgang auf den Slave zu Datenbank.
2 Sekundäre Abfrage
Gehen Sie zunächst zur Slave-Datenbank, um die Daten zu lesen. Wenn sie nicht gefunden werden kann, gehen Sie zur Hauptdatenbank, um die Daten zu lesen. Durch diesen Vorgang wird der Lesedruck problemlos an die Hauptbibliothek zurückgegeben. Um böswillige Angriffe zu vermeiden, wird empfohlen, die API-Vorgänge für den Datenbankzugriff zu kapseln, was sich positiv auf die Sicherheit und die geringe Kopplung auswirkt.
3 Spezielle Verarbeitung basierend auf dem Geschäft
Anpassung an Geschäftsmerkmale und Wichtigkeit. Beispielsweise können wichtige Lese- und Schreibvorgänge für Geschäftsdaten mit hohen Echtzeitanforderungen in der Hauptdatenbank abgelegt werden. Für sekundäre Unternehmen, die keine hohe Echtzeitleistung erfordern, können Lesen und Schreiben getrennt werden und die Abfrage erfolgt aus der Datenbank.
Verwandte Empfehlungen: „MySQL-Tutorial“
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die MySQL-Theorie und Grundkenntnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

Das Wiederherstellen von gelöschten Zeilen direkt aus der Datenbank ist normalerweise unmöglich, es sei denn, es gibt einen Backup- oder Transaktions -Rollback -Mechanismus. Schlüsselpunkt: Transaktionsrollback: Führen Sie einen Rollback aus, bevor die Transaktion Daten wiederherstellt. Sicherung: Regelmäßige Sicherung der Datenbank kann verwendet werden, um Daten schnell wiederherzustellen. Datenbank-Snapshot: Sie können eine schreibgeschützte Kopie der Datenbank erstellen und die Daten wiederherstellen, nachdem die Daten versehentlich gelöscht wurden. Verwenden Sie eine Löschanweisung mit Vorsicht: Überprüfen Sie die Bedingungen sorgfältig, um das Verhandlich von Daten zu vermeiden. Verwenden Sie die WHERE -Klausel: Geben Sie die zu löschenden Daten explizit an. Verwenden Sie die Testumgebung: Testen Sie, bevor Sie einen Löschvorgang ausführen.

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.
