1

これは、Stackoverflowで読んだ投稿の1つで学んだことです。

「最初の大きな違いは、InnoDBは行レベルのロックを実装しているのに対し、MyISAMはテーブルレベルのロックしか実行できないことです。InnoDBの方がクラッシュリカバリが優れています。ただし、MyISAMのようにフルテキスト検索インデックスはありません。InnoDB MyISAMは実装していませんが、トランザクション、外部キー、関係制約も実装しています。」

ほとんどのサイトでは、テーブル間の関係とサイト検索が必要なので、どのエンジンを使用しますか?どちらがいいですか?

4

1 に答える 1

2

私は、MySQLの大手コンサルティングおよびトレーニング会社であるPerconaで働いています。ストレージエンジンのデフォルトの選択肢としてInnoDBをお勧めしますが、MyISAMは、何らかの利点があることを証明できる(つまり、両方のストレージエンジンでアプリをベンチマークすることで証明できる)例外的なシナリオでのみ推奨されます。

InnoDBは、2010年12月のMySQL5.5以降のデフォルトのストレージエンジンになりました。

2013年2月にリリースされたMySQL5.6では、InnoDBが独自のフルテキストインデックスの実装をサポートするようになりました。しかし、大規模な全文検索を必要とするほとんどのサイトでは、SphinxSearchの使用が依然として優れていることがわかります。私のプレゼンテーション全文検索スローダウンも参照してください。

InnoDBには、リストした利点があるだけでなく、多くのベンチマークでMyISAMよりも高速です。何年も前に、人々がMyISAMをより高速なストレージエンジンと考えていたことがあります。しかし、InnoDBは、そのパフォーマンスとスケーラビリティを改善するために多くの作業を受けています。

デフォルトは本番Webサイトでの使用に正確に適していないため、InnoDBでは構成変数の調整にさらに注意を払う必要があります。別のプレゼンテーション、Guide to InnoDB Statusがあります。これは、最も重要なチューニングオプションのいくつかを説明しています。

于 2013-02-13T05:22:56.063 に答える