MyISAM-Tabellen zu InnoDB konvertieren

MyISAM als Default-Speichersystem für Datenbanktabellen wurde seit MySQL 5.5 von InnoDB abgelöst

Bitte beachten Sie: Die Informationen in diesem Artikel beziehen sich ausschließlich auf unser Tool ShopPerformance, mit dem Sie mögliche Performance-Verbesserungen in Ihrem Onlineshop erkennen können.

 

MyISAM als Default-Speichersystem für Datenbanktabellen wurde seit MySQL 5.5 von InnoDB abgelöst. Gründe dafür waren die fehlende Transaktionssicherheit und referenzielle Integrität in MyISAM. Bis auf wenige Ausnahmen ist die Datenbankoperation in InnoDB zudem schneller als beim Vorgänger.

Seit MySQL 5.6 und MariaDB 10.0 unterstützt InnoDB zudem auch die Volltextsuche/Volltextindexierung, wofür vorher MyISAM verwendet wurde.

Wir empfehlen Ihnen daher die Umstellung der Tabellen auf InnoDB, falls es keine explizite Abhängigkeit zu MyISAM-Features gibt. Die Umstellung garantiert Ihnen ein Höchstmaß an Stabilität und Performance.

Lösung

Für die Umsetzung der Konvertierung zu InnoDB bieten sich zwei Wege an:

1. Nutzung von phpMyAdmin

Eine Möglichkeit ist die Nutzung von phpMyAdmin:

  • Nach dem Login wählen Sie die Datenbank aus, deren Tabellen Sie ändern möchten.
  • In der Spalte Typ sehen Sie das verwendete Speichersystem der Tabellen. Sie können diese Spalte sortieren, um die MyISAM-Tabellen gruppiert anzeigen zu lassen.

  • Klicken Sie auf den Tabellennamen und anschließend auf den Reiter Operationen.
  • Unter Tabellenoptionen finden Sie die Zeile Tabellenformat, in der Sie mit Hilfe des Dropdown-Menüs InnoDB auswählen.
  • Nach einem Klick auf OK wird die Konvertierung durchgeführt.

2. Umstellung über SQL-Befehle

Eine andere Möglichkeit ist die Umstellung direkt über SQL-Befehle mit folgender Syntax:

ALTER TABLE t ENGINE=InnoDB;


Um alle Tabellen zu finden, die MyISAM verwenden, kann dieser Befehl verwendet werden:

SELECT TABLE_SCHEMA, TABLE_NAME,ENGINE FROM information_schema.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA NOT IN('information_schema', 'mysql', 'performance_schema') AND ENGINE='MyISAM' ORDER BY TABLE_SCHEMA, TABLE_NAME;

 

Bei Fragen steht Ihnen unser Support telefonisch unter 05251/414130 oder per E-Mail an support@maxcluster.de zur Verfügung.

Veröffentlicht am 04.06.2024