全文検索と外部キーを含む研究用のWebアプリを作成しています。
どこかで読んだことがありますが、MyISAMエンジンは全文検索に適しており、InnoDBは外部キーに適しています。
この場合、最高のパフォーマンスを得るにはどのエンジンを使用すればよいですか?
この状況で、パフォーマンスを向上させるためにどのエンジンを使用する必要がありますか?
各ストレージエンジンのパフォーマンスは、実行するクエリによって異なります。ただし、同じデータベース内の異なるテーブルが異なるストレージエンジンを使用できることに注意してください。
MyISAMエンジンが外部キー関係をサポートせず、InnoDBがサポートしているのはなぜですか?
Foreign Key Differences で文書化されているとおり:
後の段階で、
MyISAM
テーブルにも外部キー制約が実装されます。
したがって、外部キー制約はMyISAM
にまだ実装されていません。
[〜#〜] edit [〜#〜]:ドキュメントからコメントが削除されたため、外部キーを実装する予定はなくなったようです。 MyISAM
エンジンの制約。
MyISAMエンジンが全文検索をサポートし、InnoDBがサポートしないのはなぜですか?
MySQL 5.6の新機能 で説明されているとおり:
FULLTEXT
テーブルにInnoDB
インデックスを作成し、MATCH() ... AGAINST
構文を使用してクエリを実行できます。
したがって、MySQL 5.6以降、InnoDB
で全文検索が実装されました。
Mysqlにはmyisamしかなく、innodedbが開発中であった時代を覚えています。 MyIsamは、データベース内の関係をサポートしない古いシステムであるため、外部キーを持ちません。外部キーを使用することはありません!それを使用するには、innodbがあります。 DBのリレーションなど、すべてのものが必要ない場合は、MyISAMを使用してパフォーマンスを向上させます。