Innodb エンジンは、データベース ACID トランザクションのサポートを提供し、SQL 標準の 4 つの分離レベルを実装します。このエンジンは行レベルのロックと外部キー制約も提供します。その設計目標は、実際には MySQL バックエンドに基づいた完全なデータベース システムです。バッファデータとインデックス用のメモリ。ただし、エンジンは FULLTEXT タイプのインデックスをサポートしておらず、SELECT COUNT(*) FROM TABLE を実行する場合はテーブル全体をスキャンする必要があります。もちろん、データベース トランザクションの操作が必要な場合は、このエンジンが最初の選択肢になります。ロックの粒度が小さいため、書き込み操作でテーブル全体がロックされないため、同時実行性が高い場合は Innodb エンジンを使用すると効率が向上します。ただし、行レベルのロックの使用は絶対的ではありません。SQL ステートメントの実行時に MySQL がスキャン対象の範囲を決定できない場合、InnoDB テーブルはテーブル全体もロックします。
MyIASM は MySQL のデフォルトのエンジンですが、データベース トランザクションのサポートは提供しておらず、行レベルのロックや外部キーもサポートしていないため、INSERT (挿入) または UPDATE (更新) を行う場合は書き込み操作が必要です。 ) data テーブル全体をロックすると効率が低下します。ただし、Innodb とは異なり、MyIASM はテーブル内の行数を保存するため、SELECT COUNT(*) FROM TABLE を実行する場合は、テーブル全体のスキャンを実行せずに、保存された値を直接読み取るだけで済みます。テーブルの読み取り操作が書き込み操作よりもはるかに多く、データベース トランザクションのサポートを必要としない場合は、MyIASM も良い選択です。
1. MyIASM は非トランザクション的に安全ですが、InnoDB はトランザクション的に安全です
2. MyIASM ロックの粒度はテーブルレベルですが、InnoDB は行レベルのロックをサポートします
3. InnoDB はフルテキスト インデックスをサポートしていません
4. MyIASM は比較的シンプルで、InnoDB よりも効率的です。MyIASM テーブルはファイル形式で保存されるため、より便利です。クロスプラットフォームでの使用
アプリケーション シナリオ:
2 を選択する必要があります。 InnoDB はトランザクション処理に使用され、ACID トランザクションのサポートなどの機能を備えています。大量の挿入および更新操作を実行する場合は、InnoDB
を選択する必要があります。以上が2 つの MySQL エンジンの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。