ホームページ  >  記事  >  データベース  >  Mysql ストレージ エンジン InnoDB と Myisam の 6 つの主な違いの説明

Mysql ストレージ エンジン InnoDB と Myisam の 6 つの主な違いの説明

怪我咯
怪我咯オリジナル
2017-05-07 11:39:031477ブラウズ

MyISAM
InnoDB
構成の違い:

各 MyISAM はディスク上に 3 つのファイルとして保存されます。最初のファイルの名前はテーブルの名前で始まり、拡張子はファイルの種類を示します。

.frm ファイルにはテーブル定義が保存されます。

データファイルの拡張子は.MYD(MYData)です。

インデックスファイルの拡張子は.MYI(MYIndex)です。

ディスクベースのリソースは、InnoDB テーブルスペースデータファイルとそのログファイルです。 InnoDB テーブルのサイズは、オペレーティングシステムファイルのサイズによってのみ制限されます (通常は 2GB)


トランザクション処理 :

。 MyISAM タイプのテーブルはパフォーマンスを重視しており、その実行時間は InnoDB タイプよりも高速ですが、InnoDB はトランザクション サポート、外部キー、およびその他の高度なデータベース機能を提供しません。操作


頻繁に SELECT を実行する場合は、MyISAM がより良い選択です
1.データが大量の INSERT または
UPDATE
を実行する場合、パフォーマンス上の理由から、InnoDB を使用する場合は、 table


2.DELETE FROM table、InnoDB はテーブルを再作成しませんが、行ごとに削除します。 3.LOAD TABLE FROM MASTER 操作は InnoDB では機能しません。ただし、追加の InnoDB の場合は、まず InnoDB テーブルを MyISAM テーブルに変更し、次にそれを InnoDB テーブルに変更します。テーブルごとに 1 つの AUTO_INCREMEN カラムの内部処理。

MyISAM
は、
INSERT
および
UPDATE
操作のためにこの列を自動的に更新します。これにより、AUTO_INCREMENT カラムが高速化されます (少なくとも 10%)。シーケンスの先頭の値を削除すると、その値を再度使用することはできません。 (AUTO_INCREMENT列が複数列インデックスの最後の列として定義されている場合、シーケンスの先頭から削除された値を再利用することが可能です)。 C Auto_incRement 値は、Alter Table または Myisamch を使用して auto_increment 型のフィールドをリセットできます。 InnoDB にはこのフィールドのみのインデックスが含まれている必要がありますが、MyISAM テーブルでは、他のフィールドとの結合インデックス を確立できます。テーブルに AUTO_INCREMENT カラムを指定すると、データ ディクショナリの InnoDB テーブル ハンドルには自動インクリメント カウンタと呼ばれるカウンタが含まれます。このカウンタは、カラムに新しい値を割り当てるために使用されます。自動増加カウンターは、ディスク上に存在するのではなく、メイン メモリにのみ保存されます 電卓のアルゴリズム実装については、


Auto_increment を参照してください
テーブル内の特定の行数
Select count( *) テーブルから、MyISAM は単に保存された行の数を読み取ることに注意してください。 count(*) ステートメントに where 条件が含まれている場合、2 つのテーブルの操作は同じテーブルに保存されない同じ行数になります。 n Innodb、つまり、SELECT Count (*) From Table が実行されると、InnoDB はテーブル全体をスキャンして、ロックの行数を計算します









行ロック (行レベルでのロック) を提供し、さらに、Oracle タイプと一貫した SELECT での非ロック読み取りを提供します。 DB SQL ステートメントが実行される場合、MySQL がスキャンする範囲を決定できない場合、InnoDB テーブルはテーブル全体もロックします。たとえば、テーブル セット num=1 の場合、名前は「%aaa%」のようになります




-->

以上がMysql ストレージ エンジン InnoDB と Myisam の 6 つの主な違いの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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