ホームページ  >  記事  >  データベース  >  2 つの MySQL エンジンの違いは何ですか?

2 つの MySQL エンジンの違いは何ですか?

一个新手
一个新手オリジナル
2017-10-13 10:42:421767ブラウズ

Innodb エンジン

Innodb エンジンは、データベース ACID トランザクションのサポートを提供し、SQL 標準の 4 つの分離レベルを実装します。このエンジンは行レベルのロックと外部キー制約も提供します。その設計目標は、実際には MySQL バックエンドに基づいた完全なデータベース システムです。バッファデータとインデックス用のメモリ。ただし、エンジンは FULLTEXT タイプのインデックスをサポートしておらず、SELECT COUNT(*) FROM TABLE を実行する場合はテーブル全体をスキャンする必要があります。もちろん、データベース トランザクションの操作が必要な場合は、このエンジンが最初の選択肢になります。ロックの粒度が小さいため、書き込み操作でテーブル全体がロックされないため、同時実行性が高い場合は Innodb エンジンを使用すると効率が向上します。ただし、行レベルのロックの使用は絶対的ではありません。SQL ステートメントの実行時に MySQL がスキャン対象の範囲を決定できない場合、InnoDB テーブルはテーブル全体もロックします。

MyIASM エンジン

MyIASM は MySQL のデフォルトのエンジンですが、データベース トランザクションのサポートは提供しておらず、行レベルのロックや外部キーもサポートしていないため、INSERT (挿入) または UPDATE (更新) を行う場合は書き込み操作が必要です。 ) data テーブル全体をロックすると効率が低下します。ただし、Innodb とは異なり、MyIASM はテーブル内の行数を保存するため、SELECT COUNT(*) FROM TABLE を実行する場合は、テーブル全体のスキャンを実行せずに、保存された値を直接読み取るだけで済みます。テーブルの読み取り操作が書き込み操作よりもはるかに多く、データベース トランザクションのサポートを必要としない場合は、MyIASM も良い選択です。

主な違い:

1. MyIASM は非トランザクション的に安全ですが、InnoDB はトランザクション的に安全です

2. MyIASM ロックの粒度はテーブルレベルですが、InnoDB は行レベルのロックをサポートします

3. InnoDB はフルテキスト インデックスをサポートしていません

4. MyIASM は比較的シンプルで、InnoDB よりも効率的です。MyIASM テーブルはファイル形式で保存されるため、より便利です。クロスプラットフォームでの使用

アプリケーション シナリオ:

1. MyIASM は非トランザクション テーブルを管理し、高速なストレージと取得、および全文検索機能を提供します。アプリケーションで多数の選択操作を実行する場合、 MyIASM

2 を選択する必要があります。 InnoDB はトランザクション処理に使用され、ACID トランザクションのサポートなどの機能を備えています。大量の挿入および更新操作を実行する場合は、InnoDB

を選択する必要があります。

以上が2 つの MySQL エンジンの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。