MySQL における InnoDB と MyISAM の違い
1. トランザクションと外部キー
InnoDB にはトランザクションがあり、4 つのトランザクション分離レベル、ロールバック、クラッシュ回復機能、および ACID を含む複数バージョンの同時トランザクション セキュリティをサポートしています。アプリケーションで大量の INSERT または UPDATE 操作を実行する必要がある場合は、マルチユーザーの同時操作のパフォーマンスを向上させることができる InnoDB を使用する必要があります。
MyISAM は非トランザクション テーブルを管理します。高速な保存と取得、および全文検索機能を提供します。アプリケーションで多数の SELECT クエリを実行する必要がある場合は、MyISAM の方が良い選択肢です。
2. フルテキスト インデックス
Innodb は完全なインデックスをサポートしていません。 -text インデックスを使用する必要がある場合は、sphinx などの検索エンジンを使用するのが最善です。 Myisam は中国語をあまりサポートしていません
しかし、Innodb の新しいバージョンはすでにサポートしています
3、ロック
mysql は 3 つのロック レベルをサポートしています。 、ページ レベル、テーブル レベル;
MyISAM はテーブル レベルのロックをサポートし、Oracle タイプと一致する SELECT での非ロック読み取りを提供します
InnoDB は行レベルのロックをサポートしますが、InnoDB テーブルの行ロックはサポートされていません。絶対。SQL ステートメントの実行時に MySQL がスキャンする範囲を決定できない場合、InnoDB テーブルもテーブル全体をロックします。ギャップ ロックの影響に注意してください。
例: テーブル セット num=1 を更新します。ここで、名前は「�a%」
4 のようなものです。Storage
MyISAM はディスク上の 3 つのファイルに保存されます。最初のファイルの名前はテーブル名で始まり、拡張子はファイルの種類を示します。.frm ファイルにはテーブル定義が保存されます。データ ファイルの拡張子は .MYD です。インデックス ファイルの拡張子は .MYI です。
InnoDB。ディスクベースのリソースは、InnoDB テーブル スペース データ ファイルとそのログ ファイルです。InnoDB テーブルのサイズは、オペレーティング システム ファイルのサイズによってのみ制限されます。
注: MyISAM テーブルはファイルの形式で保存されます。クロスプラットフォーム データ転送で MyISAM ストレージを使用すると、多くのトラブルを回避できます
#5。 #InnoDB (インデックス構成テーブル) の使用 クラスター化インデックスとインデックスはシーケンシャルに格納されるデータであるため、インデックスをキャッシュでき、データもキャッシュできます。
MyISAM (ヒープ構成テーブル) table) は非クラスター化インデックスを使用します。インデックスはファイルから分離され、ランダムに保存されます。インデックスのキャッシュのみ可能です6。同時実行性
MyISAM読み取りと相互に書き込みをブロックします。書き込み時に読み取りをブロックするだけでなく、MyISAM は読み取り時にも書き込みをブロックします。InnoDB の読み取りおよび書き込みのブロックはトランザクション分離レベルに関連しています。
推奨チュートリアル: "PHP チュートリアル
" "MySQL チュートリアル
》以上がMySQL における InnoDB と MyISAM の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。