Zusammenfassung: In diesem Tutorium lernen Sie verschiedene MySQL-Speicher-Engines oder Tabellentypen kennen. Es ist wichtig, die Eigenschaften der einzelnen Speicher-Engines in MySQL zu verstehen, damit Sie sie effektiv nutzen können, um die Leistung Ihrer Datenbanken zu maximieren.
MySQL bietet verschiedene Speicher-Engines für seine Tabellen wie folgt an:
- MyISAM
- InnoDB
- MERGE
- MEMORY (HEAP)
- ARCHIVE
- CSV
- FEDERATED
Jede Speicher-Engine hat ihre eigenen Vor- und Nachteile. Es ist wichtig, die Eigenschaften der einzelnen Speichermodule zu kennen und das für Ihre Tabellen am besten geeignete auszuwählen, um die Leistung der Datenbank zu maximieren. In den folgenden Abschnitten werden die einzelnen Speicher-Engines und ihre Eigenschaften erläutert, damit Sie entscheiden können, welche Sie verwenden sollten.
MyISAM
MyISAM erweitert die frühere ISAM-Speicher-Engine. Die MyISAM-Tabellen sind für Komprimierung und Geschwindigkeit optimiert. MyISAM-Tabellen sind auch zwischen verschiedenen Plattformen und Betriebssystemen portabel.
Die Größe der MyISAM-Tabelle kann bis zu 256 TB betragen, was enorm ist. Außerdem können MyISAM-Tabellen in schreibgeschützte Tabellen komprimiert werden, um Platz zu sparen. Beim Start prüft MySQL die MyISAM-Tabellen auf Beschädigungen und repariert sie im Falle von Fehlern. Die MyISAM-Tabellen sind nicht transaktionssicher.
Vor MySQL-Version 5.5 ist MyISAM die Standardspeicher-Engine, wenn Sie eine Tabelle erstellen, ohne die Speicher-Engine explizit anzugeben. Ab Version 5.5 verwendet MySQL InnoDB als Standard-Speicher-Engine.
InnoDB
Die InnoDB-Tabellen unterstützen ACID-konform und Transaktionen vollständig. Sie sind auch optimal für die Leistung. InnoDB-Tabellen unterstützen Fremdschlüssel, Commit-, Rollback- und Rollforward-Operationen. Die Größe einer InnoDB-Tabelle kann bis zu 64 TB betragen.
Wie MyISAM sind auch die InnoDB-Tabellen zwischen verschiedenen Plattformen und Betriebssystemen portabel. MySQL prüft und repariert InnoDB-Tabellen bei Bedarf auch beim Start.
MERGE
Eine MERGE-Tabelle ist eine virtuelle Tabelle, die mehrere MyISAM-Tabellen, die eine ähnliche Struktur haben, zu einer Tabelle zusammenfasst. Die MERGE-Speicher-Engine ist auch als MRG_MyISAM
-Engine bekannt. Die MERGE
Tabelle hat keine eigenen Indizes; sie verwendet stattdessen Indizes der Komponententabellen.
Mit der MERGE-Tabelle können Sie die Leistung beim Zusammenführen mehrerer Tabellen beschleunigen. MySQL erlaubt nur SELECT-, DELETE-, UPDATE- und INSERT-Operationen auf den MERGE
Tabellen. Wenn Sie eine DROP TABLE
-Anweisung für eine MERGE
-Tabelle verwenden, wird nur die MERGE
-Angabe entfernt. Die zugrundeliegenden Tabellen sind davon nicht betroffen.
Memory
Die Memory-Tabellen werden im Speicher gespeichert und verwenden Hash-Indizes, so dass sie schneller sind als MyISAM-Tabellen. Die Lebensdauer der Daten in den Speichertabellen hängt von der Betriebszeit des Datenbankservers ab. Das Speichermodul war früher unter dem Namen HEAP bekannt.
Archiv
Das Archivspeichermodul ermöglicht es Ihnen, eine große Anzahl von Datensätzen, die zu Archivierungszwecken benötigt werden, in einem komprimierten Format zu speichern, um Speicherplatz zu sparen. Die Archivspeicher-Engine komprimiert einen Datensatz, wenn er eingefügt wird, und dekomprimiert ihn mithilfe der zlib-Bibliothek, wenn er gelesen wird.
Die Archivtabellen erlauben nur INSERT- und SELECT-Anweisungen. Die ARCHIVE
-Tabellen unterstützen keine Indizes, so dass ein vollständiges Scannen der Tabelle zum Lesen von Zeilen erforderlich ist.
CSV
Die CSV-Speicher-Engine speichert Daten im CSV-Dateiformat (Comma-Separated Values). Eine CSV-Tabelle bietet eine bequeme Möglichkeit, Daten in Nicht-SQL-Anwendungen wie Tabellenkalkulationssoftware zu migrieren.
Die CSV-Tabelle unterstützt nicht den Datentyp NULL. Außerdem erfordert der Lesevorgang einen vollständigen Tabellenscan.
FEDERATED
Die FEDERATED
Speicher-Engine ermöglicht es Ihnen, Daten von einem entfernten MySQL-Server zu verwalten, ohne die Cluster- oder Replikationstechnologie zu verwenden. Die lokale föderierte Tabelle speichert keine Daten. Wenn Sie Daten aus einer lokalen Verbundtabelle abfragen, werden die Daten automatisch aus den entfernten Verbundtabellen abgerufen.
Auswahl von MySQL-Tabellentypen
Sie können die folgende Checkliste herunterladen, um die am besten geeignete Speicher-Engine oder den geeignetsten Tabellentyp anhand verschiedener Kriterien auszuwählen.
Zusammenfassung der Funktionen von MySQL-Speicher-Engines
In diesem Tutorium haben Sie verschiedene Speicher-Engines oder Tabellentypen kennengelernt, die in MySQL verfügbar sind.
- War dieses Tutorium hilfreich?
- JaNein