Übersicht
Das InnoDB-Datenformat ist eine Datenspeicher-Engine, die eine größere Datenzuverlässigkeit und Leistungsverbesserungen gegenüber dem älteren MyISAM-Format bietet. Ab MySQL 5.5 ist InnoDB nun auch die standardmäßige Datenspeicher-Engine.
Standardmäßig speichert InnoDB alle Tabellendaten im System-Tablespace (/var/lib/mysql/ibdata1 ), was zu einer großen, monolithischen Datei führt. Die Aufteilung in einen „pro Tabelle“-Ansatz reduziert die Wahrscheinlichkeit einer Beschädigung und erhöht die Flexibilität bei der Übertragung von Tabellen und der Ausführung dateibasierter Sicherungen.
Anleitung
Warnung! Stellen Sie sicher, dass Ihre Datenbank zuerst gesichert wurde, bevor Sie Änderungen vornehmen. Besonders wenn Sie Änderungen auf niedriger Ebene vornehmen, ist dies von entscheidender Bedeutung.
- Sichern Sie Ihre Datenbank. Das ist wichtig genug, dass ich es noch einmal wiederholt habe!
- Bearbeiten /etc/my.cnf und fügen Sie Folgendes in [mysqld] ein Abschnitt:
innodb_file_per_table=1
- Starten Sie MySQL neu:
/etc/init.d/mysqld restart
- Melden Sie sich bei MySQL an und geben Sie Folgendes ein:
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', table_name, ' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE' AND engine = 'InnoDB';
-
Dadurch wird eine Liste mit ALTER TABLE-Befehlen generiert, die Sie dann ausführen müssen, um in die Speicherung pro Tabelle zu konvertieren.
Hinweis: Dadurch wird kein Speicherplatz freigegeben, der bereits /var/lib/mysql/ibdata1 zugewiesen wurde -
Überwachen Sie das Ergebnis aller ALTER-Befehle, um sicherzustellen, dass sie korrekt ausgeführt wurden.
MySQL-Dokumentationsreferenz: http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html