ホームページ >データベース >mysql チュートリアル >mysqlストレージエンジンの違いは何ですか
mysql ストレージ エンジンの違い: 1. MyISAM はトランザクションと行レベルのロックをサポートしませんが、InnoDB はトランザクションと行レベルのロックをサポートします; 2. InnoDB は MVCC と外部キーをサポートしますが、MyISAM はサポートしませんMVCC と外部キー。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
InnoDB はトランザクションをサポートしますが、MyISAM はトランザクションをサポートしません
InnoDB は行をサポートします-レベルのロック、MyISAM はテーブル レベルのロックをサポートします
InnoDB は MVCC をサポートしますが、MyISAM はサポートしません
InnoDB は外部キーをサポートします。一方、MyISAM は
# で myisam、innodb、メモリの 3 つのストレージ エンジンをサポートしません。 ##1. 相違点:
1) MyISAM は非トランザクション テーブルを管理します。高速な保存と取得、および全文検索機能を提供します。 MyISAM はすべての MySQL 構成でサポートされており、MySQL がデフォルトで別のエンジンを使用するように構成されていない限り、デフォルトのストレージ エンジンです。 2) MEMORY ストレージ エンジンは、「インメモリ」テーブルを提供します。 MERGE ストレージ エンジンを使用すると、同じ MyISAM テーブル上でコレクションを 1 つのテーブルとして処理できます。 MyISAM と同様に、MEMORY および MERGE ストレージ エンジンは非トランザクション テーブルを処理し、両方のエンジンがデフォルトで MySQL に含まれています。 注: MEMORY ストレージ エンジンは、正式には HEAP エンジンとして識別されます。 3) InnoDB およびストレージ エンジンは、デフォルトですべての MySQL 5.1 バイナリ ディストリビューションに含まれるトランザクション セキュリティ テーブルを提供します。好みに応じてどちらかのエンジンを許可または無効にするように MySQL を構成できます。2. 機能ポイントの紹介
1) MyISAM ストレージ エンジン
MyISAM ストレージ エンジントランザクションをサポートし、行レベルのロックをサポートせず、同時に挿入されたテーブル ロックのみをサポートし、主に高負荷の選択に使用されます。 Myisam タイプのテーブルは、静的、動的、圧縮の 3 つの異なるストレージ構造をサポートします。 (1) 静的型: 定義されたテーブル列のサイズは固定されています (つまり、xblob、xtext、varchar などの可変長データ型は含まれていません)。そのため、mysql は静的な myisam 形式を自動的に使用します。 静的フォーマットを使用するテーブルのパフォーマンスは、メンテナンス時やアクセス時に所定のフォーマットでデータを保存するために必要なオーバーヘッドが非常に低いため、比較的高くなります。ただし、この高いパフォーマンスはスペースと引き換えに得られます。スペースは定義時に固定されるため、列内の値がどれほど大きくても、最大値が優先され、スペース全体を占有します。 (2) 動的タイプ: 列が (列が 1 つしかない場合でも) 動的 (xblob、xtext、varchar およびその他のデータ型) として定義されている場合、myisam は自動的に動的タイプを使用します。動的タイプのテーブルは、静的テーブルよりも占有するスペースが少なくなりますが、フィールドの内容が変更されるとその位置を移動する必要が生じ、断片化が発生する可能性が高いため、パフォーマンスが低下します。データの変更が増えると断片化が増加し、それに応じてデータ アクセスのパフォーマンスが低下します。 (3) 圧縮タイプ: このデータベースで作成されたテーブルがライフサイクル全体を通じて読み取り専用である場合、この場合、領域使用量を削減するために myisam の圧縮テーブルが使用されます。2) メモリ ストレージ エンジン:
(1) メモリ ストレージ エンジンは、以前のストレージ エンジンの一部とは少し異なり、そこに保存されているデータを使用します。 . テーブルを作成すると、すべてのデータもメモリに保存されます。 (2) メモリ ストレージ エンジンに基づく各テーブルは、実際にはディスク ファイルに対応しており、ファイル名とテーブル名は同じで、種類は .frm です。このファイルにはテーブルの構造のみが保存され、そのデータ ファイルはメモリに保存されるため、データの高速処理が容易になり、テーブル全体の処理能力が向上します。 (3) メモリ ストレージ エンジンはデフォルトでハッシュ (HASH) インデックスを使用します。これは B-Tree を使用するよりも高速です。読者が B-Tree を使用したい場合は、作成時に参照できます。 (4) メモリストレージエンジンのファイルデータはメモリ上に保存されているため、mysqld プロセスで例外が発生した場合、マシンを再起動またはシャットダウンするとデータが消えます。したがって、メモリ ストレージ エンジン内のテーブルのライフ サイクルは非常に短く、通常は 1 回しか使用されません。3) innoDB ストレージ エンジン:
(1) innodb ストレージ エンジン この mysql テーブルは、トランザクション、ロールバック、システム クラッシュ修復機能とマルチバージョン バースト制御を提供します トランザクション セキュリティ。 (2) innodb は自動インクリメント列 (auto_increment) をサポートしています。自動インクリメント列の値を空にすることはできません。使用時に空の場合、既存の値を自動的に保存して増加を開始するにはどうすればよいですか? in value? がある場合は、現在の値より大きい場合は、この値が保存されます。 (3) innodb ストレージ エンジンは外部キーをサポートしており、外部キーが配置されているテーブルは子テーブルと呼ばれ、外部キーが依存するテーブルは親テーブルと呼ばれます。 (4) innodb ストレージ エンジンで最も重要なことは、トランザクションとトランザクション関連の機能をサポートしていることです。 (5) innodb ストレージ エンジンは、mvcc 行レベルのロックをサポートします。 推奨学習:以上がmysqlストレージエンジンの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。