MyISAMとInnoDBの違い

MySQL

MySQL MyISAMとInnoDBの違い

MySQLで利用するテーブルのストレージエンジンにはMyISAMとInnoDBがありますが、どのようなケースにどちらを選べばいいか、メモしておきます。
デフォルトではMyISAMです。

MyISAMの利点と問題点

  • 利点…シンプル、高速に動作、フルテキスト検索に対応
  • 欠点…トランザクションや外部キー制約をサポートしない、REPAIR TABLEで修正できることが多いがクラッシュ時に使えなくなる、テーブルレベルでロックをかけるという点でロックの粒度が荒い

InnoDBの利点と問題点

  • 利点…トランザクションをサポート、外部キー制約が装備されている、クラッシュ時のリカバリに対応、列レベルでロックを実施
  • 欠点…フルテキスト検索ができない、パフォーマンスが悪い

参考、引用
http://journal.mycom.co.jp/news/2009/03/27/048/index.html
http://www.thinkit.co.jp/free/article/0608/1/2/

データ整合性が求められるデータベースにおいては、InnoDBを利用し、パフォーマンス重視の場合はMyISAMにしましょう、ということですかね。

テーブルごとに、ストレージエンジンを選択することもできます。

phpMyAdminでMySQLのストレージエンジンを変更する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です