MyISAM
MyISAMは、読み取り操作が多く、書き込みが少ない環境向けに最適化されている。 MyISAMを採用すべき典型的な領域はデータウェアハウスであり、非常に大きなテーブルへのクエリを発行し、テーブルの更新はデータベースが使われない夜間などに行われる場合である。
MyISAMが高速読み取りを可能にする理由は、そのインデックス構造にある。各エントリはデータファイル内のレコードを指し、ポインタはファイルの先頭からオフセットされている。そのため、特にフファイル形式がFIXの場合、レコードをすばやく読み取れる。行の長さは固定されている。挿入操作も簡単で、データファイルの最後に新しい行を追加するだけである。一方、削除や更新の操作には課題がある。削除する場合は、行のオフセット値を変更しないで済むようにするには、削除後の空のスペースはそのまま残す必要がる。行の長さが変更される更新の場合、短くなる場合はからのスペースはそのまま残り、長くなる場合は行は断片化されて格納されることになる。行をデフラグして空きスペースを生み出すには、OPTIMIZETABLEコマンドを実行する。このように、仕組みが単純なため、MyISAMのインデックス統計は非常に正確である。
ただし、MyISAMの単純さには欠点がいくつかり、トランザクションのサポートがないことが大きな課題である。外部キーもサポートされていない。また、通常のユースケースでは、InnoDBの方がMyISAMよりも高速に動作する。
MySQL 5.5以降のバージョンは、参照整合性の制約とより高い同時実行性を確保するため、InnoDBエンジンに切り替えられた。
MyISAMは、FULLTEXTインデックス作成とOpenGISデータ型をサポートする。