MySQLのMyISAMテーブルとInnoDBエンジンの違い

違い:

1. InnoDBは、トランザクションのデフォルトにパッケージ化されているのMyISAMは、各SQL言語のためのInnoDBをサポートしていない、トランザクションをサポートする自動コミット、これは速度に影響を与えるだろう、それが始まるとコミットの間に複数のSQL言語を配置するのが最善である、単一のトランザクションを構成します

2. InnoDBは外部キーをサポートしており、MyISAMテーブルはサポートしていません。InnoDBテーブルはMYISAM失敗への外部キーが含まれています

3. InnoDBは、主キー、主キーのインデックスは非常に効率的であるがなければならない、集計インデックス、インデックスとデータファイルが一緒に接続されています。しかし、それは二つの補助インデックスクエリ、主キーの最初のクエリを必要とし、主キーによってデータを照会します。そのため、主キーは、主キーが大きすぎるので、他のインデックスも素晴らしいものだが大きすぎてはなりません。非凝集のMyISAMインデックス、別のデータファイルに対し、インデックスポインタは、データファイルに格納されています。プライマリキーインデックスとセカンダリインデックスは独立しています

テーブルの行の4 InnoDBの特定の数は、SELECT COUNT(*)を実行するテーブルからのフルテーブルスキャンを必要とする、記憶されていません。MyISAMテーブルだけで上記のステートメントを実行する変数を読んで、テーブル全体の行数を保持する変数を使用するには、非常に高速にすることができ

5. InnoDBはフルテキストインデックスをサポートしていない、とMyISAMテーブルはMyISAMの高効率化にフルテキストインデックス、クエリをサポートしています

どのように選択するには:

1.あなたは、あなたがMyISAMテーブルを考慮していない場合は、InnoDBのを選択したい場合は、トランザクションをサポートしたいです。

読み取りと書き込みの両方のかなり頻繁に、InnoDBのを使用している場合2.大多数のテーブルがちょうど読んでいる場合は、クエリは、MyISAMテーブルと考えることができます。

3.システムベンの崩壊、MyISAMのがより困難に回復し、彼らは受け入れることができます。

4. MySQL5.5のバージョンは、あなたが、その後はInnoDBを使用しているものを使用わからない場合は、その利点は、明白である少なくとも悪くない説明、InnoDBは(MyISAMテーブルの前に)デフォルトのMySQLのエンジンとなっています開始します。

 

著者:Oscarwinの
リンクします。https://www.zhihu.com/question/20596402/answer/211492971
出典:知っているほとんど

おすすめ

転載: www.cnblogs.com/yijiahao/p/11707126.html