重複の可能性:
MyISAMとInnoDB
MySqlで最適なストレージエンジンはどれですか?InnoDbまたはMyIsam?
「最善」はありません。それは、あなた/あなたのアプリケーションが何を必要としているかによって異なります。
違いについては、リファレンス マニュアルを参照してください。
InnoDB: ユーザー データを保護するためのコミット、ロールバック、およびクラッシュ リカバリ機能を備えた MySQL 用のトランザクション セーフ (ACID 準拠) ストレージ エンジン。InnoDB の行レベルのロック (粒度の粗いロックへのエスカレーションなし) と Oracle スタイルの一貫性のある非ロック読み取りにより、マルチユーザーの同時実行性とパフォーマンスが向上します。InnoDB は、クラスター化されたインデックスにユーザー データを格納して、主キーに基づく一般的なクエリの I/O を削減します。データの整合性を維持するために、 InnoDB は FOREIGN KEY 参照整合性制約もサポートしています。InnoDB は、MySQL 5.6 のデフォルトのストレージ エンジンです。
MyISAM: これらのテーブルのフットプリントは小さいです。テーブル レベルのロックは、読み取り/書き込みワークロードのパフォーマンスを制限するため、Web およびデータ ウェアハウス構成の読み取り専用または読み取りがほとんどのワークロードでよく使用されます。
「ベスト」は多くのものに依存します:
MyISAMにはリレーション(外部キー)がありません。テーブル間の整合性を維持したい場合は、いくつかのトリガーをコーディングする必要がありますが、InnoDBでは「DELETEONCASCADE」などを使用できます。ただし、InnoDBは制約をチェックする必要があるため、移行中は低速になります。
詳細については、以下を簡単に確認できます。
http://www.devshed.com/c/a/MySQL/Comparison-of-MyISAM-and-InnoDB-MySQL-Databases-57392/