Im vorherigen Artikel haben wir über MySQL-Transaktionen gesprochen. Jetzt sollte jeder etwas über MySQL-Transaktionen wissen. Erinnern Sie sich noch an das ACID-Prinzip von Transaktionen? Wer es nicht mehr weiß, kann sich „Einführung in MySQL-Transaktionen“ noch einmal ansehen. Genauer gesagt müsste es die MySQL InnoDB-Speicher-Engine heißen, denn in MySQL unterstützt nur die InnoDB-Speicher-Engine Transaktionen. Angesichts dessen stellen sich manche Freunde möglicherweise folgende Fragen: Was ist eine Speicher-Engine? Welche Speicher-Engines gibt es in MySQL? Was sind die Merkmale und Unterschiede der einzelnen Speicher-Engines? Sehen wir uns als Nächstes die folgenden Fragen der Reihe nach an: Was ist eine Speicher-Engine? Vereinfacht ausgedrückt wird MySQL zum Speichern von Daten verwendet, richtig? Wir können uns eine Speicher-Engine als eine Möglichkeit zum Speichern von Dateien und eine dazugehörige Reihe von Tools vorstellen, wobei die Eigenschaften jeder Dateispeichermethode die Eigenschaften der Speicher-Engine sind. Beispielsweise speichert die Memory-Speicher-Engine Daten im Speicher. Ihre Vorteile sind: schnelles Lesen und Schreiben, aber die Daten bleiben nicht auf der Festplatte gespeichert und können sehr leicht verloren gehen usw. Speicher-Engines in MySQL In MySQL 5.7 werden die folgenden Speicher-Engines von MySQL unterstützt: InnoDB MeinIsAM Erinnerung CSV Archiv Schwarzes Loch Verschmelzen: Föderiert Beispiel Im Folgenden werden nur häufig verwendete Speicher-Engines vorgestellt. Wenn Sie an anderen Speicher-Engines interessiert sind, die hier nicht vorgestellt werden, können Sie selbst danach suchen. InnoDB: unterstützt Transaktionsvorgänge (wie die Befehle „Begin“, „Commit“ und „Rollback“) und unterstützt Sperren auf Zeilenebene. Im Vergleich zu Tabellensperren haben Sperren auf Zeilenebene eine feinere Granularität und ermöglichen eine höhere Parallelität. Hier gibt es viele Details. Nächstes Mal werden wir einen separaten Artikel schreiben.) unterstützt Einschränkungen der referenziellen Integrität von Fremdschlüsseln. Die InnoDB-Speicher-Engine ist auch die Standardspeicher-Engine in MySQL Version 5.7. Der Nachteil besteht darin, dass es viel Speicherplatz beansprucht. MyISAM: Diese Speicher-Engine benötigt viel weniger Platz als die InnoDB-Speicher-Engine, unterstützt jedoch nur Tabellensperren, hat eine viel geringere Parallelitätsleistung und unterstützt keine Transaktionen. Sie wird normalerweise nur in schreibgeschützten Anwendungen verwendet. Es ist die ursprüngliche Speicher-Engine von MySQL. Speicher: Das größte Merkmal dieser Speicher-Engine besteht darin, dass alle Daten im Speicher gespeichert werden. Früher wurde dies als „Heap“ bezeichnet. CSV: Lassen Sie uns zunächst CSV kennenlernen. Eine CSV-Datei ist eigentlich eine durch Kommas getrennte Textdatei. Sie wird häufig zur Datenkonvertierung verwendet. Dieser Typ wird selten verwendet und unterstützt keine Indizes. Archiv: Archivdateien, die hauptsächlich zum Speichern selten verwendeter Referenzdateien verwendet werden. Beispiel: Diese Speicher-Engine wird hauptsächlich verwendet, um zu zeigen, wie Sie selbst eine Speicher-Engine schreiben, und wird im Allgemeinen nicht in einer Produktionsumgebung verwendet. So wählen Sie eine Speicher-Engine aus Aus dem obigen Vergleich sollten Sie ersehen haben, dass die InnoDB-Speicher-Engine Transaktionen, Fremdschlüssel und Zeilensperren unterstützt. Es eignet sich am besten für Anwendungen, die eine Online-Transaktionsverarbeitung erfordern. Wenn Sie eine Speicher-Engine auswählen, empfehle ich, InnoDB als Speicher-Engine zu wählen, sofern kein besonderer Grund vorliegt. 1. Wir können die Speicher-Engine beim Erstellen einer Tabelle angeben. Wenn nicht angegeben, wird die Standard-Speicher-Engine verwendet. Tabelle t_base_user erstellen( oid bigint(20) nicht null Primärschlüssel auto_increment Kommentar "", erstellt am Datum/Uhrzeit Null Kommentar '' )engine=innodb 2. (Methode 1) Zeigen Sie die Speicher-Engine der Tabelle an mysql> Tabellenstatus wie „t_base_user“ anzeigen \G; *************************** 1. Reihe *************************** Name: t_base_user Engine: InnoDB Version: 10 Row_format: Dynamisch Zeilen: 0 Durchschnittliche Zeilenlänge: 0 Datenlänge: 16384 Max_data_length: 0 Indexlänge: 0 Datenfrei: 0 Auto_Inkrement: 1 Erstellungszeit: 17.12.2017 20:10:24 Update_time: NULL Check_time: NULL Sortierung: utf8_unicode_ci Prüfsumme: NULL Erstellungsoptionen: Kommentar: 1 Zeile im Satz (0,01 Sek.) 3. (Methode 2) Zeigen Sie die Speicher-Engine-Informationen der Tabelle an mysql> anzeigen, Tabelle erstellen t_base_user\G; *************************** 1. Reihe *************************** Tabelle: t_base_user Tabelle erstellen: CREATE TABLE `t_base_user` ( `oid` bigint(20) NICHT NULL AUTO_INCREMENT, `created_at` Datum/Uhrzeit DEFAULT NULL, PRIMÄRSCHLÜSSEL (`oid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 1 Zeile im Satz (0,00 Sek.) Außerdem ist zu beachten: Es wird nicht empfohlen, die Speicher-Engine einer Tabelle zu ändern. Beim Erstellen einer Tabelle müssen Sie überlegen, welche Speicher-Engine Sie verwenden möchten. Die heutige Bestellung Befehl: Engines anzeigen; Standardsyntax: Speicher-Engines anzeigen; Wobei die Lagerung optional ist. Funktion: Anzeige der von der aktuellen MySQL-Version unterstützten Speicher-Engines. Beispiel (MySQL-Version: 5.7.20): mysql> Speicher-Engines anzeigen; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Kommentar | Transaktionen | XA | Speicherpunkte | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | MRG_MYISAM | JA | Sammlung identischer MyISAM-Tabellen | NEIN | NEIN | NEIN | | CSV | JA | CSV-Speicher-Engine | NEIN | NEIN | NEIN | | MyISAM | JA | MyISAM-Speicher-Engine | NEIN | NEIN | NEIN | | BLACKHOLE | JA | /dev/null-Speicher-Engine (alles, was Sie hineinschreiben, verschwindet) | NEIN | NEIN | NEIN | | SPEICHER | JA | Hash-basiert, im Speicher abgelegt, nützlich für temporäre Tabellen | NEIN | NEIN | NEIN | | InnoDB | STANDARD | Unterstützt Transaktionen, Zeilensperren und Fremdschlüssel | JA | JA | JA | | ARCHIV | JA | Archivspeicher-Engine | NEIN | NEIN | NEIN | | PERFORMANCE_SCHEMA | JA | Leistungsschema | NEIN | NEIN | NEIN | | FEDERATED | NO | Föderierte MySQL-Speicher-Engine | NULL | NULL | NULL | +--------------------+---------+---------------------------------------------------------------+--------------+------+------------+ 9 Zeilen im Satz (0,00 Sek.) Anwendungsszenario: Diese Funktion ist sehr nützlich, um die von der aktuellen Datenbankversion und der Standardspeicher-Engine unterstützten Speicher-Engines anzuzeigen. Engine: Name der Speicher-Engine. Support: Gibt an, ob die aktuelle MySQL-Serverversion die Speicher-Engine unterstützt. JA bedeutet, dass sie unterstützt wird, und NEIN bedeutet, dass sie nicht unterstützt wird. Kommentar: Die Eigenschaften der Speicher-Engine, wie Innodb Unterstützt Transaktionen, Zeilensperren usw. Transaktionen: ob Transaktionen unterstützt werden sollen, JA bedeutet Unterstützung, Nein bedeutet keine Unterstützung. XA und Savepoints: Diese beiden Attribute beziehen sich auf Transaktionen. Wenn Transaktionen Ja ist, sind diese beiden Attribute sinnvoll, andernfalls sind sie beide NEIN. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung geplanter Aufgaben und verzögerter Aufgaben unter Linux
>>: Vergleich verschiedener Möglichkeiten zur Messung der Leistung von JavaScript-Funktionen
MGR (MySQL Group Replication) ist eine neue Funkt...
Detaillierte Erklärung zur MySQL-Sortierung chine...
Voraussetzungen 1. Docker wurde auf dem lokalen C...
Erstens kann JavaScript aus Sicherheitsgründen ni...
Inhaltsverzeichnis DOM Knoten Elementknoten: Text...
Finden Sie das Problem Als ich heute versuchte, d...
In diesem Artikel wird der spezifische Code für d...
Als ich heute Tomcat für den Zugriff auf die Proj...
Inhaltsverzeichnis Was ist Docker Compose Anforde...
Inhaltsverzeichnis 1. Verwende Closures 2. Verwen...
Frage: Was ist der Unterschied zwischen int(1) un...
Beim Webdesign ist es sehr wichtig, eine organisi...
Überblick Backup ist die Grundlage der Notfallwie...
Vorwort Ab MySQL 5.7.11 unterstützt MySQL die Dat...
Aufgrund der Einschränkung der CPU-Berechtigungen...