web-dev-qa-db-ja.com

MyISAMとInnoDBをいつ使用するか

MyISAMはあなたのデータベースが更新されたものよりはるかに多く問い合わせられ、その結果非常に速い読み込み操作を実行するという考えで設計されています。読み書きの比率(挿入|更新)が15%未満の場合は、MyISAMを使用することをお勧めします。

InnoDBは、行レベルのロックを使用し、ユーザーデータを保護するためのコミット、ロールバック、およびクラッシュ回復機能を備えています。トランザクションとフォールトトレランスをサポート

上記の違いはMyISAMとInnobDBの間で正しいですか? MYISAMとInnobDBに他の制限がある場合はご案内ください。MyiSAMを使うべきなのか、いつInnodbなのかありがとうございます

122
ajay

Storage Engines について読んでください。

MyISAM:

MySQLの MyISAM ストレージエンジン。

  • 設計と作成が簡単なので、初心者に向いている。テーブル間の外部関係について心配する必要はありません。
  • 構造が単純なため、InnoDBよりも全体的に高速で、サーバーリソースのコストが大幅に削減されます。 - ほとんど本当ではありません。
  • フルテキストインデックス - InnoDBは今それを持っています
  • 特に読み込み集中型(選択)テーブルに適しています。 - ほとんど本当ではありません。
  • ディスク占有スペースはInnoDBの2倍から3倍少ないです。 - バージョン5.7の時点で、これはおそらくMyISAMの唯一の本当の利点です。

InnoDB:

MySQLの InnoDB ストレージエンジン。

  • トランザクションのサポート( ACID プロパティに対するサポートを提供します)。
  • 行レベルのロックよりきめの細かいロックメカニズムを持つことで、例えば MyISAM と比較してより高い同時実行性が得られます。
  • 外部キー制約データベースの状態、およびテーブル間の関係の整合性をデータベースに保証させることができます。
  • InnoDBはMyISAMよりもテーブルの破損に対してより耐性があります。
  • データとインデックスの両方に対して大きなバッファプールをサポートします。 MyISAMキーバッファはインデックス専用です。
  • MyISAMは停滞しています。今後のすべての機能強化はInnoDBに含まれる予定です。これは、バージョン8.0のロールアウトで非常に明確になりました。

MyISAMの制限:

  • 外部キーや連鎖削除/更新はありません
  • トランザクションの整合性なし(ACID準拠)
  • ロールバック機能なし
  • 4,284,867,296行制限(2 ^ 32) - これは古いデフォルトです。設定可能な制限(多くのバージョン)は2 ** 56バイトです。
  • テーブルあたり最大64のインデックス

InnoDBの制限事項:

  • 全文索引なし(5.6以下のMySQLバージョン)
  • 高速で読み取り専用のために圧縮することはできません(5.5.14導入されたROW_FORMAT=COMPRESSED
  • InnoDBテーブルを修復することはできません

簡単に理解するために以下のリンクを読んでください:

  1. MySQLエンジン:InnoDBとMyISAM - 長所と短所の比較
  2. MySQLエンジン:MyISAM vs. InnoDB
  3. InnoDBとMyISAMの主な違いは何ですか?
  4. MyISAM vs. InnoDB
  5. MyISAMとInnoDBの違いは何ですか?
  6. MySql:MyISAM vs. Inno DB!
218
Tony Stark

非常に重要ではないデータのために、または本当にこれらの最小限のパフォーマンスの利点が必要な場合は、MyISAMを使用してください。 MyISAMの場合、読み取りパフォーマンスはどの場合でも優れているわけではありません。

私は個人的にはもうMyISAMを使用しないでしょう。もっとパフォーマンスが必要な場合はInnoDBを選択し、もう少しハードウェアを投入してください。他の考えはPostgreSQLのようなより多くの機能を備えたデータベースシステムを当てはめることです。

EDIT:このリンクは、読み込みパフォーマンスに関して、innoDBは実際には遅くないことが多いことを示しています MyISAMより: http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/

17
Argeman