Heim  >  Artikel  >  Datenbank  >  Wie viele Speicher-Engines gibt es in MySQL?

Wie viele Speicher-Engines gibt es in MySQL?

云罗郡主
云罗郡主Original
2019-01-22 15:59:394068Durchsuche

Führen Sie den folgenden Befehl aus, um alle MySQL-Speicher-Engines anzuzeigen [Empfohlenes Tutorial: MySQL-Tutorial]

Wie viele Speicher-Engines gibt es in MySQL?

InnoDB-Speicher-Engine

InnoDB ist die bevorzugte Engine für Transaktionsdatenbanken. Sie unterstützt Transaktionssicherheitstabellen (ACID), Zeilensperren und Fremdschlüssel. Wie Sie in der obigen Abbildung sehen können, ist InnoDB die Standard-MySQL-Engine. Die Hauptfunktionen von InnoDB sind:

1. InnoDB stellt MySQL eine transaktionssichere (ACID-kompatible) Speicher-Engine mit Commit-, Rollback- und Crash-Recovery-Funktionen zur Verfügung. InnoDB sperrt auf Zeilenebene und bietet außerdem einen Oracle-ähnlichen, nicht sperrenden Lesevorgang in der SELECT-Anweisung. Diese Funktionen erhöhen die Bereitstellung und Leistung für mehrere Benutzer. In SQL-Abfragen können Sie Tabellen vom Typ InnoDB frei mit anderen MySQL-Tabellentypen mischen, sogar in derselben Abfrage

2. InnoDB ist für maximale Leistung bei der Verarbeitung großer Datenmengen konzipiert. Seine CPU-Effizienz wird von keiner anderen festplattenbasierten relationalen Datenbank-Engine erreicht.

3. Die InnoDB-Speicher-Engine ist vollständig in den MySQL-Server integriert. Die InnoDB-Speicher-Engine wird für die Zwischenspeicherung von Daten und Indizes im Hauptspeicher verwaltet . ein eigener Pufferpool. InnoDB platziert seine Tabellen und Indizes in einem logischen Tabellenbereich, der mehrere Dateien (oder Rohdatenträgerdateien) enthalten 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, auch auf Betriebssystemen, bei denen die Dateigröße auf 2 GB begrenzt ist.

4. InnoDB unterstützt Integritätsbeschränkungen für Fremdschlüssel. Beim Speichern von Daten in der Tabelle wird jede Tabelle entsprechend der Primärtabelle gespeichert Schlüssel. Sequentielle Speicherung. Wenn der Primärschlüssel nicht in der Tabellendefinition angegeben ist, generiert InnoDB eine 6-Byte-ROWID für jede Zeile und verwendet sie als Primärschlüssel

5. InnoDB wird in vielen großen Datenbanken verwendet die eine hohe Leistung erfordern

InnoDB erstellt kein Verzeichnis auf der Site. Bei Verwendung von InnoDB erstellt MySQL eine automatisch erweiterte Datendatei mit 10 MB und dem Namen ib_logfile0 und ib_logfile1 im MySQL-Datenverzeichnis

MyISAM Storage Engine

MyISAM basiert auf der ISAM Storage Engine und erweitert diese. Es ist eine der am häufigsten verwendeten Speicher-Engines im Web, im Data Warehousing und in anderen Anwendungsumgebungen. MyISAM verfügt über eine hohe Einfügungs- und Abfragegeschwindigkeit, unterstützt jedoch keine Transaktionen. Die Hauptfunktionen von MyISAM sind:

1. Große Dateien (bis zu 63-Bit-Dateilänge) werden auf Dateisystemen und Betriebssystemen unterstützt, die große Dateien unterstützen

2 und das Einfügen von Zeilen mit dynamischer Größe führt zu einer geringeren Fragmentierung, wenn Vorgänge gemischt werden. Dies erfolgt automatisch durch Zusammenführen benachbarter gelöschter Blöcke und wenn der nächste Block gelöscht wird, durch Erweiterung auf den nächsten Block

3. Die maximale Anzahl von Indizes für jede MyISAM-Tabelle beträgt 64, was durch Neukompilieren von Change erreicht werden kann . Die maximale Anzahl von Spalten pro Index beträgt 16

4. Die maximale Schlüssellänge beträgt 1000 Byte. Bei Schlüssellängen über 250 Byte wird eine Schlüssellänge von mehr als 1024 Byte verwendet

5. BLOB- und TEXT-Spalten können indiziert werden

6. Dieser Wert belegt 0~1 Byte jedes Schlüssels Numerische Schlüsselwerte werden zuerst im Big-Byte-Format gespeichert, um eine höhere Indexkomprimierung zu ermöglichen

8 Jede Tabelle vom Typ MyISAM verfügt über eine interne Spalte von AUTO_INCREMENT. Diese Spalte wird während INSERT- und UPDATE-Vorgängen aktualisiert Die Spalte wird aktualisiert. Daher wird die Spalte AUTO_INCREMENT der Tabelle vom Typ MyISAM schneller aktualisiert als die Spalte AUTO_INCREMENT vom Typ InnoDB

9. Datendateien und Indexdateien können in unterschiedlichen Verzeichnissen abgelegt werden

10 können verschiedene Zeichensätze haben

11. Tabellen mit VARCHAR können feste oder dynamische Datensatzlängen haben

12 VARCHAR- und CHAR-Spalten können bis zu 64 KB groß sein

Verwenden Sie die MyISAM-Engine Um eine Datenbank zu erstellen, werden 3 Dateien generiert. Der Name der Datei beginnt mit dem Tabellennamen und die Erweiterung ist der Dateityp: FRM-Dateispeichertabellendefinition, die Erweiterung der Datendatei ist. MYD (MYData), die Erweiterung der Indexdatei. MYI (MYIndex)

MEMORY-Speicher-Engine

MEMORY-Speicher-Engine speichert die Daten in der Tabelle im Speicher und ermöglicht so einen schnellen Zugriff, ohne andere Tabellendaten abzufragen und zu referenzieren. Die Hauptmerkmale von MEMORY sind:

1. Jede MEMORY-Tabelle kann bis zu 32 Indizes, 16 Spalten pro Index und eine maximale Schlüssellänge von 500 Bytes haben.

2 führt eine HASH- und BTREE-Mikronisierung durch

3. Sie können nicht eindeutige Schlüsselwerte in einer MEMORY-Tabelle haben

4. Die MEMORY-Tabelle verwendet ein festes Datensatzlängenformat

5, MEMORY unterstützt keine BLOB- oder TEXT-Spalten

6. MEMORY unterstützt AUTO_INCREMENT-Spalten und Indizes für Spalten, die NULL-Werte enthalten können

7. MEMORY-Tabellen werden von allen Clients gemeinsam genutzt (nur Wie jede andere nicht temporäre Tabelle)

8. Der Speicher der MEMORY-Tabelle wird von der MEMORY-Tabelle und den vom Server erstellten internen Tabellen gemeinsam genutzt, wenn sie während der Abfrageverarbeitung inaktiv ist

9 . Wenn der Inhalt der MEMORY-Tabelle nicht mehr benötigt wird, sollten Sie DELETE FROM oder TRUNCATE TABLE ausführen oder die gesamte Tabelle löschen (verwenden Sie DROP TABLE)

Auswahl der Speicher-Engine

Wie viele Speicher-Engines gibt es in MySQL?

Wenn Sie Transaktionssicherheitsfunktionen (ACID-Kompatibilität) für Commit, Rollback und Crash-Recovery bereitstellen und Parallelitätskontrolle benötigen möchten, ist InnoDB eine gute Wahl.

Wenn die Die Datentabelle wird hauptsächlich zum Einfügen und Abfragen von Datensätzen verwendet. Die MyISAM-Engine kann eine höhere Verarbeitungseffizienz bieten.

Wenn Sie Daten nur vorübergehend speichern, die Datenmenge nicht groß ist und keine hohe Datensicherheit erforderlich ist, können Sie dies tun Wählen Sie eine Speicher-Engine, die Daten im Speicher speichert. Diese Engine wird als temporäre Tabelle in MySQL verwendet, um die Zwischenergebnisse der Abfrage zu speichern.

Wenn es nur INSERT- und SELECT-Operationen gibt, können Sie „Archiv unterstützt hoch“ wählen -Parallelität bei Einfügevorgängen, aber per se nicht transaktionssicher. Archiv eignet sich hervorragend zum Speichern archivierter Daten. Sie können beispielsweise Archiv

verwenden, um die zu verwendende Engine flexibel auszuwählen. Mehrere Tabellen in einer Datenbank können unterschiedliche Engines verwenden und tatsächliche Anforderungen. Verwenden Sie die entsprechende Speicher-Engine, um die Leistung der gesamten Datenbank zu verbessern.


Das obige ist der detaillierte Inhalt vonWie viele Speicher-Engines gibt es in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn