MySQLのMyISAMとInnoDB

ほぼ引用です。

MyISAMの特徴と問題点

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

InnoDBの特徴と問題点

* 特徴: トランザクションをサポート
* 特徴: 外部キー制約をサポート
* 特徴: クラッシュ時のリカバリに対応
* 特徴: 列レベルでロックを実施
* 欠点: 複雑さが増す
* 欠点: フルテキスト検索ができない
* 欠点: パフォーマンスが悪い
* 用途例: オンラインショップ、金融アプリケーション、データ整合が求められる用途

MyISAMInnoDBはちょうど利点と欠点がお互いに補完し合う関係にあることがわかる。MyISAMの特徴で十分な場合にはそのまま使い、トランザクションのサポートやデータ整合性が必要とされる場合にはInnoDBを採用するという指針になるようだ。なおひとつのデータベースで複数種類のテーブルタイプを使うこともできるとされている。

MySQL、MyISAMとInnoDBを選ぶ方法 | エンタープライズ | マイナビニュース