MyISAM-Tabellen zu InnoDB konvertieren
MyISAM als Default-Speichersystem für Datenbanktabellen wurde seit MySQL 5.5 von InnoDB abgelöst
Hintergrund
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 sind 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:
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.
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;
Sollten Sie Unterstützung bei der Umstellung auf InnoDB benötigen, steht Ihnen unser Support unter support@maxcluster.de gerne zur Verfügung.