Panoramica
Il formato dati InnoDB è un motore di archiviazione dati, che fornisce una maggiore affidabilità dei dati e miglioramenti delle prestazioni rispetto al vecchio formato MyISAM. A partire da MySQL 5.5, InnoDB è ora anche il motore di archiviazione dati predefinito.
Per impostazione predefinita, InnoDB archivia tutti i dati della tabella nello spazio tabella di sistema (/var/lib/mysql/ibdata1 ), risultando in un unico file grande e monolitico. Separare questo in un approccio "per tabella" ridurrà le possibilità di danneggiamento, oltre ad aumentare la flessibilità per il trasferimento di tabelle e l'esecuzione di backup basati su file.
Istruzioni
Attenzione! Assicurati di aver eseguito il backup del database prima di apportare modifiche. Soprattutto se stai apportando modifiche di basso livello, questo è fondamentale.
- Esegui il backup del database. Questo è abbastanza importante da averlo ripetuto di nuovo!
- Modifica /etc/my.cnf e inserisci quanto segue in [mysqld] sezione:
innodb_file_per_table=1
- Riavvia MySQL:
/etc/init.d/mysqld restart
- Accedi a MySQL ed emetti quanto segue:
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', table_name, ' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE' AND engine = 'InnoDB';
-
In questo modo verrà generato un elenco di comandi ALTER TABLE, che dovrai quindi eseguire per convertire in spazio di archiviazione Per Table.
Nota: Questo in realtà non libererà spazio su disco già allocato a /var/lib/mysql/ibdata1 -
Monitora l'esito di tutti i comandi ALTER per assicurarti che siano stati eseguiti correttamente.
Riferimento alla documentazione MySQL: http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html