InnoDBデータ形式はデータストレージエンジンであり、古いMyISAM形式よりも優れたデータの信頼性とパフォーマンスの向上を提供します。 MySQL 5.5以降、InnoDBはデフォルトのデータストレージエンジンにもなりました。
デフォルトでは、InnoDBはすべてのテーブルデータをシステムテーブルスペース( / var / lib / mysql / ibdata1 )に保存します )、1つの大きなモノリシックファイルになります。これを「テーブルごと」のアプローチに分離すると、破損の可能性が減り、テーブルの転送とファイルベースのバックアップの実行の柔軟性が向上します。
警告! 変更を加える前に、データベースが最初にバックアップされていることを確認してください。特に低レベルの変更を行う場合、これは重要です。
- データベースをバックアップします。これは私がもう一度繰り返したほど重要です!
- 編集/etc/my.cnf [mysqld]に以下を挿入します セクション:
innodb_file_per_table=1
- MySQLを再起動します:
/etc/init.d/mysqld restart
- MySQLにログインし、次を発行します。
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', table_name, ' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE' AND engine = 'InnoDB';
-
これにより、ALTER TABLEコマンドのリストが呼び出され、テーブルごとのストレージに変換するために実行する必要があります。
注: これにより、 / var / lib / mysql / ibdata1にすでに割り当てられているディスクスペースが実際に解放されることはありません。 -
すべてのALTERコマンドの結果を監視して、正しく実行されていることを確認します。
MySQLドキュメントリファレンス:http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html