1. ホーム
  2. mysql

[解決済み] MyISAMとInnoDBを使い分けるタイミングは?重複

2022-06-17 22:52:44

質問

MyISAMは、データベースが更新されるよりもクエリされる方がはるかに多いという考えで設計されており、その結果、非常に高速な読み取り操作を実行します。もし、読み込みと書き込み(挿入|更新)の比率が15%以下であれば、MyISAMを使用する方がよいでしょう。

InnoDBは行レベルロックを使用し、コミット、ロールバック、クラッシュリカバリ機能を持ち、ユーザデータを保護します。トランザクションとフォールトトレランスをサポートします。

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

どのように解決するには?

について読む ストレージエンジン .

MyISAMです。

この MyISAM ストレージエンジンは、MySQL の

  • 設計や作成が簡単なので、初心者に適している。テーブル間の外部リレーションシップの心配がない。
  • 構造が単純なため、全体としてInnoDBより高速であり、サーバーリソースのコストがはるかに少ない。-- もはやほとんど真実ではない。
  • フルテキストインデックス。 -- InnoDB は現在それを備えている。
  • 特に読み取り集約的な(select)テーブルに良い。-- ほとんどがそうでなくなった。
  • ディスクフットプリントは InnoDB の 2x-3x より小さい。 -- バージョン 5.7 では、おそらくこれが MyISAM の唯一の本当の利点です。

InnoDBです。

InnoDB ストレージエンジンは、MySQL の中にあります。

  • トランザクションのサポート (以下のようなサポートを与える ACID プロパティをサポートします)。
  • 行レベルのロック。よりきめ細かいロック機構を持つことで、例えば MyISAM .
  • 外部キー制約。データベースの状態、およびテーブル間の関係の整合性を確保させることを可能にします。
  • InnoDBは、MyISAMよりもテーブルの破損に強い。
  • データとインデックスの両方に大きなバッファプールをサポート。MyISAMのキーバッファはインデックスのみです。
  • MyISAMは停滞している。将来の拡張はすべてInnoDBになる。 これは、バージョン 8.0 のロールアウトではっきりと明らかになった。

MyISAM の制限事項。

  • 外部キーとカスケード削除/更新ができない
  • トランザクションの完全性 (ACID 準拠) がない
  • ロールバック機能なし
  • 4,284,867,296 行の制限 (2^32) -- これは古いです。 デフォルト . 設定可能な上限は (多くのバージョンで) 2**56 バイトでした。
  • 1テーブルあたり最大64インデックス

InnoDB の制限事項。

  • フルテキストインデックスなし(5.6以下のmysqlバージョン)
  • 高速に圧縮できない、読み取り専用(5.5.14導入済み ROW_FORMAT=COMPRESSED )
  • InnoDB テーブルを修復することはできません。

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

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