Heim  >  Artikel  >  Datenbank  >  Ausführliche Erklärung zur Auswahl der geeigneten Engine und Engine-Konvertierung für MySQL

Ausführliche Erklärung zur Auswahl der geeigneten Engine und Engine-Konvertierung für MySQL

黄舟
黄舟Original
2017-09-21 11:00:121117Durchsuche

Wie wählen wir den richtigen Motor aus? Hier ist eine einfache Zusammenfassung: „Es sei denn, Sie müssen einige Funktionen verwenden, die InnoDB nicht bietet, und es gibt keine andere Möglichkeit, diese zu ersetzen, sollten Sie der InnoDB-Engine Vorrang einräumen.

Sofern es nicht unbedingt erforderlich ist. Andernfalls wird nicht empfohlen, mehrere Speicher-Engines zu kombinieren, da dies sonst zu einer Reihe komplexer Probleme und potenziellen Fehlern führen kann.

Mehrere wichtige Faktoren, die bei der Verwendung verschiedener Engines zu berücksichtigen sind:

1. Transaktionen

Wenn Notwendige Transaktionsunterstützung, dann sind InnoDB oder XtraDB derzeit am stabilsten. Wenn keine Transaktionen erforderlich sind und die Hauptoperationen SELECT und INSERT sind, ist MyISAM eine gute Wahl.

2. Backup

Wenn ein Online-Hot-Backup erforderlich ist, ist InnoDB die grundlegende Wahl.

3. Wiederherstellung nach einem Systemabsturz

Wenn die Datenmenge relativ groß ist, ist die schnelle Wiederherstellung nach einem Systemabsturz ein wichtiges Thema Dies ist auch der Grund, warum sich viele Menschen für InnoDB entscheiden, auch wenn sie keine Transaktionsunterstützung benötigen.

Konvertierungstabellen-Engine:

1.ALTER TABLE

Die einfachste Methode ist die ALTER TABLE-Anweisung: mysql> ALTER TABLE mytable ENGINE = InnoDB;

Diese Syntax ist auf jede Speicher-Engine anwendbar, die Ausführung dauert jedoch lange.

Die Speicher-Engine der Konvertierungstabelle verliert alle Funktionen der Original-Engine.

2. Exportieren und Importieren

Sie können das Tool mysqldump verwenden, um die Daten in eine Datei zu exportieren und diese dann zu ändern CREATE TABLE-Anweisung in der Dateispeicher-Engine. Bitte achten Sie darauf, den Tabellennamen zu ändern.

Beachten Sie gleichzeitig, dass das mysqldump-Tool standardmäßig automatisch die DROP TABLE-Anweisung vor der CREATE TABLE-Anweisung hinzufügt, um Datenverlust zu vermeiden.

3. Erstellen und Abfragen

Um die erste und zweite Methode zu kombinieren, erstellen Sie zunächst eine neue Speicher-Engine-Tabelle und verwenden Sie dann INSTER. .. SELECT-Syntax zum Importieren von Daten

 mysql> CREATE TABLE innodb_table LIKE myisam_table;
       mysql>ALTER TABLE innodb_table ENGINE=InnoDB;
       mysql>INSTER INTO innodb_table SELECT * FROM myisam_table;

Wenn die Datenmenge groß ist, kann sie stapelweise verarbeitet werden, und für jedes Datenelement werden Transaktionsübermittlungsvorgänge ausgeführt, um Rückgängigmachungen durch große Transaktionen zu vermeiden. Percona Toolkit bietet ein pt-online-schema-change-Tool, das einfach und bequem ausgeführt werden kann, um Fehler durch manuelle Vorgänge zu vermeiden.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Auswahl der geeigneten Engine und Engine-Konvertierung für 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