136

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

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

上記の違いは、MyISAM と InnobDB の間で正しいですか? MYISAM と InnobDB にその他の制限がある場合は、ガイドしてください。MyiSAM または Innodb はいつ使用する必要がありますか? ありがとうございました!

4

2 に答える 2

237

ストレージ エンジンについてお読みください。

MyISAM:

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

  • 設計と作成がより簡単で、初心者に適しています。テーブル間の外部関係について心配する必要はありません。
  • 構造が単純なため、全体として InnoDB よりも高速であり、サーバー リソースのコストが大幅に削減されます。-- ほとんどの場合、真実ではなくなりました。
  • 全文索引作成。-- InnoDB は現在それを持っています
  • 読み取りが集中する (選択) テーブルに特に適しています。-- ほとんどの場合、真実ではなくなりました。
  • ディスクのフットプリントは、InnoDB の 2 分の 1 から 3 分の 1 です。-- バージョン 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 と InnoDB の比較
  3. InnoDB と MyISAM の主な違いは何ですか?
  4. MyISAM 対 InnoDB
  5. MyISAM と InnoDB の違いは何ですか?
  6. MySql: MyISAM 対 Inno DB!
于 2013-03-28T09:48:11.223 に答える
20

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

個人的には、MyISAM を使用することはもうありません。より高いパフォーマンスが必要な場合は、InnoDB を選択し、ハードウェアをもう少し増やしてください。もう 1 つのアイデアは、該当する場合、PostgreSQL のようなより多くの機能を備えたデータベース システムを検討することです。

編集: 読み取りパフォーマンスについては、このリンクは、innoDB が実際にはMyISAM よりも遅くないことが多いことを示しています: https://www.percona.com/blog/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks -パート1/

于 2013-03-28T09:44:23.887 に答える