Was ist ein DateisystemWir wissen, dass Speicher-Engines wie InnoDB und MyIASM Tabellen auf der Festplatte speichern (persistent). Wenn wir Daten lesen möchten, lesen diese Speicher-Engines die Daten aus dem Dateisystem und geben sie an uns zurück. Wenn wir Daten schreiben möchten, schreiben diese Speicher-Engines die Daten zurück in das Dateisystem. Natürlich speichert MySQL neben der Speicherung eigentlicher Daten auch eine Reihe anderer Protokolle, die ebenfalls zum Dateisystem gehören. Die Adresse der auf der Speicher-Engine gespeicherten DateiNachdem Sie mit dem Client eine Verbindung zum Server hergestellt haben, können Sie den Wert dieser Systemvariablen anzeigen: Variablen wie „Datadir“ anzeigen; Natürlich kann dieses Verzeichnis über die Konfigurationsdatei geändert und von uns selbst angegeben werden. Was befindet sich in der Datenträgerdatei?Welche Daten generiert MySQL während seines Betriebs? Natürlich werden dazu auch Benutzerdaten wie Datenbanken, Tabellen, Ansichten und Trigger gehören, die wir erstellt haben. Zusätzlich zu diesen Benutzerdaten erstellt MySQL auch einige weitere Daten für einen besseren Programmbetrieb. Tabelleninformationen unter dem Datenbank-Datumsverzeichnis Was passiert eigentlich im Dateisystem, wenn wir eine Datenbank mit der Anweisung CREATE DATABASE erstellen? Eigentlich ist es ganz einfach. Jede Datenbank entspricht einem Unterverzeichnis des Datenverzeichnisses oder einem Ordner. Wenn wir eine neue Datenbank erstellen, hilft uns MySQL bei zwei Dingen:
Sie können sehen, dass es derzeit 5 Datenbanken gibt, von denen die mysqladv-Datenbank unsere benutzerdefinierte ist und die anderen 4 Datenbanken Systemdatenbanken sind, die mit MySQL geliefert werden. Werfen wir einen Blick auf den Inhalt des Datenverzeichnisses: Natürlich gibt es in diesem Datenverzeichnis viele Dateien und Unterverzeichnisse, aber wenn Sie genau hinschauen, sehen Sie, dass außer der Systemdatenbank „information_schema“ auch andere Datenbanken entsprechende Unterverzeichnisse in diesem Datenverzeichnis haben. Dieses Informationsschema ist ziemlich speziell und wir werden seine Funktion später besprechen. So speichert InnoDB DatenWenn unser InnoDB eine Datenbank hinzufügt, wird ein Ordner im Stammverzeichnis des Protokolls hinzugefügt. Jeder Ordner speichert alle entsprechenden Tabellendaten. Die Daten in jeder Tabelle werden im Allgemeinen nach den folgenden zwei Regeln aufgeteilt: Definition der Tabellenstruktur Nehmen wir als Beispiel die Tabelle „index_condition_pushdown“ in der von uns erstellten Studienbibliothek: Die Tabellenstruktur besteht aus diesen Daten und der entsprechende Speicherdateiname lautet: Die Tabellenstruktur umfasst den Namen der Tabelle, die Anzahl der Spalten in der Tabelle, den Datentyp jeder Spalte, die Einschränkungen und Indizes, den verwendeten Zeichensatz und die Vergleichsregeln usw. Alle diese Informationen werden in unserer Anweisung zur Tabellenerstellung widergespiegelt. Um diese Informationen zu speichern, erstellen sowohl InnoDB- als auch MyIASM-Speicher-Engines eine Datei, die speziell zur Beschreibung der Tabellenstruktur im entsprechenden Datenbankunterverzeichnis unter dem Datenverzeichnis verwendet wird. Der Dateiname lautet: Tabellenname.frm Daten in der Tabelle Erstellen Sie eine Datei, die den unabhängigen Tablespace darstellt, im Unterverzeichnis, das der Datenbank entspricht, zu der die Tabelle gehört. Der Dateiname ist derselbe wie der Tabellenname, außer dass die Erweiterung .ibd hinzugefügt wird. Daher sieht der vollständige Dateiname folgendermaßen aus: Tabellenname.ibd. So speichert MyISAM TabellendatenDaten und Indizes werden in MyISAM separat gespeichert. Daher werden im Dateisystem unterschiedliche Dateien zum Speichern von Datendateien und Indexdateien verwendet. (Im Vergleich zu InnoDB speichert die ibd-Datei Daten + Indizes, und MyISAM teilt sie erneut auf). Wie in der Abbildung gezeigt, ändern wir die Speicher-Engine. Das Dateiverzeichnis wird auf das oben angezeigte geändert. Es lässt sich einfach so verstehen, dass die InnoDB-IBD-Datei in die folgenden zwei Dateien aufgeteilt wird. .MYD stellt die Datendatei der Tabelle dar. .MYI stellt die Indexdatei der Tabelle dar. Hier fassen wir einen wichtigen Unterschied zwischen InnoDB und MyISAM zusammen. Das heißt, der Index und die Daten von InnoDB befinden sich in einem Ordner, während MyISAM Datendateien und Indexdateien getrennt in zwei Dateien speichert. LogfilesWährend des Betriebs des Servers werden verschiedene Protokolle generiert, z. B. reguläre Abfrageprotokolle, Fehlerprotokolle, Binlog-Protokolle, Redo-Protokolle, Undo-Protokolle usw. Die Protokolldateien zeichnen verschiedene Arten von Aktivitäten auf, die sich auf die MySQL-Datenbank auswirken. Zu den üblichen Protokolldateien gehören: Fehlerprotokoll, Protokoll langsamer Abfragen, Abfrageprotokoll und Binärprotokoll. Fehlerprotokoll Die Fehlerprotokolldatei zeichnet den Start-, Betriebs- und Herunterfahrvorgang von MySQL auf. Wenn Sie auf ein Problem stoßen, sollten Sie zuerst diese Datei überprüfen, um das Problem zu lokalisieren. Diese Datei zeichnet nicht nur alle Fehlermeldungen auf, sondern auch einige Warnmeldungen oder Korrekturmeldungen. Benutzer können den Speicherort der Fehlerprotokolldatei mit dem folgenden Befehl anzeigen: Variablen wie „log_error“ anzeigen\G; Wenn MySQL nicht normal gestartet werden kann, sollte die erste Datei, nach der Sie suchen müssen, die Fehlerprotokolldatei sein, in der die Fehlerinformationen aufgezeichnet sind. Langsames Abfrageprotokoll Protokolle langsamer Abfragen können dabei helfen, möglicherweise problematische SQL-Anweisungen zu lokalisieren und so SQL-Anweisungen zu optimieren. Abfrageprotokoll Das Abfrageprotokoll zeichnet Informationen zu allen Anfragen an die MySQL-Datenbank auf, unabhängig davon, ob diese Anfragen korrekt ausgeführt wurden oder nicht. Standarddateiname: hostname.log Ab MySQL 5.1 können Abfrageprotokolldatensätze in die Tabelle general_log unter dem MySQL-Schema eingefügt werden. Binärprotokoll (binlog)Das Binärprotokoll zeichnet alle Operationen auf, die die MySQL-Datenbank ändern. Wenn die Operation selbst keine Änderung der Datenbank bewirkt, kann die Operation auch in die Binärdatei geschrieben werden. Allerdings sind Operationen wie „Auswählen“ und „Anzeigen“ nicht enthalten (da diese Operationen die Daten selbst nicht ändern). Mehrere Funktionen von Binlog Erholung Für die Wiederherstellung einiger Daten sind Binärprotokolle erforderlich. Kopie Das Prinzip ähnelt dem der Wiederherstellung. Durch Kopieren und Ausführen von Binärprotokollen wird eine entfernte MySQL-Datenbank (im Allgemeinen als Slave oder Standby bezeichnet) in Echtzeit mit einer MySQL-Datenbank (im Allgemeinen als Master oder Primär bezeichnet) synchronisiert. Audit (etwas unbeliebt, dafür ist die DB zuständig) Benutzer können die Informationen im Binärprotokoll verwenden, um zu prüfen und festzustellen, ob es Injektionsangriffe auf die Datenbank gibt. ZusammenfassenDies ist das Ende dieses Artikels über MySQL-Dateispeicher. Weitere relevante Inhalte zum Thema MySQL-Dateispeicher finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So installieren Sie Docker und Portainer in Kali
>>: Zusammenfassung verschiedener Übermittlungsmethoden für HTML-Formulare
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Hintergrund So ermitteln Sie, ...
Inhaltsverzeichnis Bei der Entwicklung kann eine ...
Trennung von statischer und dynamischer Dynamisch...
Abfrage des aktuellen Datums AKTUELLES DATUM AUSW...
Wenn Sie den FTP-Server häufig in Ihrem Studium o...
Inhaltsverzeichnis denken 1. Bild mit dem gierige...
Die von Navicat exportierten Daten können nicht i...
Definition von Generika // Anforderung 1: Generik...
Vorwort Ich arbeite derzeit an einem hochwertigen...
Auf dem heimischen Markt besteht noch immer ein g...
Inhaltsverzeichnis 1. Was ist dynamische Typisier...
Es gibt zwei Lösungen: Eine Möglichkeit ist CSS, b...
Inhaltsverzeichnis Vor der Transformation: Nach d...
Die Kenntnis der IP-Adresse eines Geräts ist wich...