MySQLのレプリケーション、トランザクションの機能を試すため、ストレージエンジンをMyISAMからInnoDBへ変更することにしました。
ちなみにMySQL5.5からデフォルトのストレージエンジンはMyISAMからInnoDBに変更されたようです。
1.利用可能なストレージエンジンの確認
mysql> show engines; +--------------------+---------+ | Engine | Support | +--------------------+---------+ | InnoDB | DEFAULT | | MRG_MYISAM | YES | | CSV | YES | | BLACKHOLE | YES | | MyISAM | YES | | PERFORMANCE_SCHEMA | YES | | ARCHIVE | YES | | MEMORY | YES | | FEDERATED | NO | +--------------------+---------+
バージョンを5.5にアップデートしたのでInnoDBがデフォルトになっています。
2.各テーブルのストレージエンジンを確認
WordPressに使用しているDBの各テーブルを確認してみました。
mysql> show table status from wordpress; +------------------------+--------+ | Name | Engine | +------------------------+--------+ | wp_commentmeta | MyISAM | | wp_comments | MyISAM | | wp_ktaisession | MyISAM | | wp_links | MyISAM | | wp_options | MyISAM | | wp_post_views_history | MyISAM | | wp_post_views_realtime | MyISAM | | wp_post_views_summary | MyISAM | | wp_postmeta | MyISAM | | wp_posts | MyISAM | | wp_term_relationships | MyISAM | | wp_term_taxonomy | MyISAM | | wp_terms | MyISAM | | wp_usermeta | MyISAM | | wp_users | MyISAM | +------------------------+--------+
innoDBを使用するためにはテーブルに設定されているデータベースエンジンも変更してあげる必要がありそうです。
3.my.cnfのパラメータ追加
今回InnoDBを使用するために必要なパラメータをmy.cnfに追加しました。チューニング的なパラメータはまた改めて確認したいと思います。
innodb_data_home_dir innodb_data_file_path innodb_log_group_home_dir log-bin
4.各テーブルのデータベースエンジンをMyISAMからInnoDBへ変更します。
ALTER TABLE <テーブル名> ENGINE=InnoDB;
以下のようにファイルに記述して読み込ませるのが楽です。
# mysql -u root -p < ファイル名.sql
<ファイルの内容> USE wordpress; ALTER TABLE wp_commentmeta ENGINE=InnoDB; ALTER TABLE wp_comments ENGINE=InnoDB; ALTER TABLE wp_ktaisession ENGINE=InnoDB; ALTER TABLE wp_links ENGINE=InnoDB; ALTER TABLE wp_options ENGINE=InnoDB; ALTER TABLE wp_post_views_history ENGINE=InnoDB; ALTER TABLE wp_post_views_realtime ENGINE=InnoDB; ALTER TABLE wp_post_views_summary ENGINE=InnoDB; ALTER TABLE wp_postmeta ENGINE=InnoDB; ALTER TABLE wp_posts ENGINE=InnoDB; ALTER TABLE wp_term_relationships ENGINE=InnoDB; ALTER TABLE wp_term_taxonomy ENGINE=InnoDB; ALTER TABLE wp_terms ENGINE=InnoDB; ALTER TABLE wp_usermeta ENGINE=InnoDB; ALTER TABLE wp_users ENGINE=InnoDB;
5.ストレージエンジンが変更されたことを確認する
mysql> show table status from wordpress; +------------------------+--------+ | Name | Engine | +------------------------+--------+ | wp_commentmeta | InnoDB | | wp_comments | InnoDB | | wp_ktaisession | InnoDB | | wp_links | InnoDB | | wp_options | InnoDB | | wp_post_views_history | InnoDB | | wp_post_views_realtime | InnoDB | | wp_post_views_summary | InnoDB | | wp_postmeta | InnoDB | | wp_posts | InnoDB | | wp_term_relationships | InnoDB | | wp_term_taxonomy | InnoDB | | wp_terms | InnoDB | | wp_usermeta | InnoDB | | wp_users | InnoDB | +------------------------+--------+
■参考
http://blog.still-laughin.com/archives/2010/02/innodb.html