Inhaltsverzeichnis- Alle Speicher-Engines anzeigen
- InnoDB-Speicher-Engine
- MyISAM-Speicher-Engine
- MEMORY-Speicher-Engine
Alle Speicher-Engines anzeigen
Mit dem Befehl show engines können wir sehen, welche Engines unser MySQL-Server bereitstellt:
Motoren anzeigen;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Kommentar | Transaktionen | XA | Speicherpunkte |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | STANDARD | Unterstützt Transaktionen, Zeilensperren und Fremdschlüssel | JA | JA | JA |
| MRG_MYISAM | JA | Sammlung identischer MyISAM-Tabellen | NEIN | NEIN | NEIN |
| SPEICHER | JA | Hash-basiert, im Speicher abgelegt, nützlich für temporäre Tabellen | NEIN | NEIN | NEIN |
| BLACKHOLE | JA | /dev/null-Speicher-Engine (alles, was Sie hineinschreiben, verschwindet) | NEIN | NEIN | NEIN |
| MyISAM | JA | MyISAM-Speicher-Engine | NEIN | NEIN | NEIN |
| CSV | JA | CSV-Speicher-Engine | NEIN | NEIN | NEIN |
| 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.)
InnoDB-Speicher-Engine
InnoDB ist die bevorzugte Engine für Transaktionsdatenbanken und unterstützt transaktionssichere Tabellen (ACID), Zeilensperren und Fremdschlüssel. Nach MySQL 5.5.5 wird InnoDB als Standardspeicher-Engine verwendet. Die Hauptfunktionen von InnoDB sind: - InnoDB stellt MySQL eine transaktionssichere (ACID-kompatible) Speicher-Engine mit Commit-, Rollback- und Crash-Recovery-Funktionen bereit. InnoDB sperrt auf Zeilenebene und ermöglicht außerdem ein Oracle-ähnliches Lesen ohne Sperren in SELECT-Anweisungen. Diese Funktionen verbessern die Bereitstellung durch mehrere Benutzer und die Leistung. In SQL-Abfragen können Sie InnoDB-Tabellen frei mit anderen MySQL-Tabellentypen mischen, sogar in derselben Abfrage.
- InnoDB ist für die leistungsorientierte Verarbeitung großer Datenmengen konzipiert und seine CPU-Effizienz wird vermutlich von keiner anderen festplattenbasierten relationalen Datenbank-Engine erreicht.
- Die InnoDB-Speicher-Engine ist vollständig in den MySQL-Server integriert. Die InnoDB-Speicher-Engine unterhält ihren eigenen Pufferpool im Hauptspeicher, um Daten und Indizes zwischenzuspeichern. InnoDB speichert seine Tabellen und Indizes in einem logischen Tabellenbereich, der aus mehreren Dateien (oder Rohfestplattenpartitionen) bestehen kann. Dies unterscheidet sich von MyISAM-Tabellen, bei denen jede Tabelle in einer separaten Datei gespeichert wird. InnoDB-Tabellen können jede beliebige Größe haben, selbst auf Betriebssystemen, die die Dateigröße auf 2 GB begrenzen.
- InnoDB unterstützt Integritätsbeschränkungen für Fremdschlüssel (FOREIGN KEY). Beim Speichern von Daten in einer Tabelle wird jede Tabelle in der Reihenfolge des Primärschlüssels gespeichert. Wenn der Primärschlüssel beim Definieren der Tabelle nicht explizit angegeben wird, generiert InnoDB für jede Zeile eine 6B ROWID und verwendet sie als Primärschlüssel.
- InnoDB wird auf vielen großen Datenbanksites verwendet, die eine hohe Leistung erfordern.
- InnoDB erstellt kein Verzeichnis. Bei Verwendung von InnoDB erstellt MySQL eine automatisch erweiterte Datendatei mit 10 MB namens ibdata1 im MySQL-Datenverzeichnis und zwei 5 MB große Protokolldateien mit den Namen ib_logfile0 und ib_logfile1.
MyISAM-Speicher-Engine
MyISAM ist eine Speicher-Engine, die auf ISAM basiert und dieses erweitert. Es ist eine der am häufigsten verwendeten Speicher-Engines im Web, in der Datenspeicherung und anderen Anwendungsumgebungen. MyISAM hat höhere Einfüge- und Abfragegeschwindigkeiten, unterstützt jedoch keine Transaktionen. In Versionen vor MySQL 5.5.5 war MyISAM die Standardspeicher-Engine. Die Hauptfunktionen von MyISAM sind: - Große Dateien (bis zu 63 Bit Dateilänge) werden auf Dateisystemen und Betriebssystemen unterstützt, die große Dateien unterstützen.
- Dynamisch dimensionierte Zeilen erzeugen weniger Fragmentierung, wenn eine Mischung aus Lösch-, Aktualisierungs- und Einfügevorgängen verwendet wird. Dies geschieht automatisch durch das Zusammenführen benachbarter gelöschter Blöcke und die Erweiterung auf den nächsten Block, wenn der nächste Block gelöscht wird.
- Die maximale Anzahl von Indizes pro MyISAM-Tabelle beträgt 64 und kann durch Neukompilierung geändert werden. Die maximale Spaltenanzahl pro Index beträgt 16.
- Die maximale Schlüssellänge beträgt 1000B, welche durch Kompilieren auch geändert werden kann. Bei Schlüssellängen über 250 B wird ein Schlüssel größer als 1024 B verwendet.
- BLOB- und TEXT-Spalten können indiziert werden.
- In indizierten Spalten sind NULL-Werte zulässig. Dieser Wert belegt 0-1 Bytes pro Schlüssel.
- Alle numerischen Schlüsselwerte werden mit dem High Byte zuerst gespeichert, um eine höhere Indexkomprimierung zu ermöglichen.
- Interne Handhabung einer AUTO_INCREMENT-Spalte pro Tabelle. MyISAM aktualisiert diese Spalte automatisch für INSERT- und UPDATE-Vorgänge. Dadurch werden AUTO_INCREMENT-Spalten schneller (mindestens 10 %). Nachdem der Wert eines Sequenzelements gelöscht wurde, kann er nicht wiederverwendet werden.
- Sie können Datendateien und Indexdateien in verschiedenen Verzeichnissen ablegen.
- Jede Zeichenspalte kann einen anderen Zeichensatz haben.
- Tabellen mit VARCHAR können eine feste oder dynamische Datensatzlänge haben.
- VARCHAR- und CHAR-Spalten können bis zu 64 KB groß sein.
- Wenn Sie die MyISAM-Engine zum Erstellen einer Datenbank verwenden, werden drei Dateien generiert. Der Dateiname beginnt mit dem Namen der Tabelle und die Erweiterung stellt den Dateityp dar: frm-Dateien speichern Tabellendefinitionen, myd stellt Datendateien dar und myi stellt Indexdateien dar.
MEMORY-Speicher-Engine
Die Speicher-Engine MEMORY speichert Daten in einer Tabelle im Speicher und ermöglicht schnellen Zugriff zum Abfragen und Referenzieren anderer Tabellendaten. Die Hauptfunktionen von MEMORY sind: - MEMORY-Tabellen können bis zu 32 Indizes pro Tabelle, 16 Spalten pro Index und eine maximale Schlüssellänge von 500 B haben.
- Die MEMORY-Speicher-Engine implementiert HASH- und BTREE-Indizes.
- Es ist möglich, dass eine MEMORY-Tabelle nicht eindeutige Schlüssel enthält.
- MEMORY-Tabellen verwenden ein Format mit fester Datensatzlänge.
- MEMORY unterstützt keine BLOG- oder TEXT-Spalten.
- MEMORY unterstützt AUTO_INCREMENT-Spalten und Indizes für Spalten, die NULL-Werte enthalten können.
- MEMORY-Tabellen werden von allen Clients gemeinsam genutzt (genau wie jede andere nicht TEMPORÄRE Tabelle).
- Der Inhalt von MEMORY-Tabellen wird im Speicher gespeichert. Dieser wird von MEMORY-Tabellen und internen Tabellen gemeinsam genutzt, die der Server in seiner Freizeit während der Abfrageverarbeitung erstellt.
- Wenn der Inhalt einer MEMORY-Tabelle nicht mehr benötigt wird, sollten Sie zum Freigeben des von der MEMORY-Tabelle verwendeten Speichers DELETE FROM oder TRUNCATE TABLE ausführen oder die gesamte Tabelle löschen (mit DROP TABLE).
Oben finden Sie ausführliche Informationen zu den Vor- und Nachteilen gängiger MySQL-Speicher-Engines. Weitere Informationen zu den Vor- und Nachteilen von MySQL-Speicher-Engines finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:- Auswahl der MySQL-Tabellentyp-Speicher-Engine
- Erläuterung des Beispiels einer MySQL-Datenanalyse-Speicher-Engine
- Vergleich der von der MySQL-Datenbank unterstützten Speicher-Engines
- Unterschiede und Vergleiche von Speicher-Engines in MySQL
- Erfahren Sie mehr über die MySQL-Speicher-Engine
|