デフォルトでは常にInnoDBを使用します。
それ以降のMySQL5.1では、InnoDBを使用する必要があります。 MySQL 5.1では、InnoDBプラグインを有効にする必要があります 。 MySQL 5.5では、InnoDBプラグインはデフォルトで有効になっているため、使用するだけです。
数年前のアドバイスは、MyISAMは多くのシナリオで高速だったというものでした。しかし、現在のバージョンのMySQLを使用している場合、それはもはや真実ではありません。
MyISAMが特定のワークロード(テーブルスキャンや大量のINSERTのみの作業など)でわずかにパフォーマンスが向上するというエキゾチックなコーナーケースがいくつかあるかもしれませんが、証明できない限り、デフォルトの選択はInnoDBである必要があります。 MyISAMの方が優れている場合があります。
通常言及されるトランザクションと外部キーのサポートに加えて、InnoDBの利点は次のとおりです。
- InnoDBは、MyISAMよりもテーブルの破損に対して耐性があります。
- 行レベルのロック。 MyISAMでは、リーダーはライターをブロックし、その逆も同様です。
- データとインデックスの両方の大規模なバッファプールのサポート。 MyISAMキーバッファはインデックス専用です。
- MyISAMは停滞しています。今後の開発はすべてInnoDBで行われます。
MyISAMとInnoDB に対する私の回答も参照してください。