構成の違い:
各 MyISAM はディスク上に 3 つのファイルとして保存されます。最初のファイルの名前はテーブルの名前で始まり、拡張子はファイルの種類を示します。
.frm ファイルにはテーブル定義が保存されます。
データファイルの拡張子は.MYD(MYData)です。
インデックスファイルの拡張子は.MYI(MYIndex)です。
ディスクベースのリソースは、InnoDB テーブルスペースデータファイルとそのログファイルです。InnoDB テーブルのサイズは、オペレーティングシステムファイルのサイズによってのみ制限されます。
トランザクション処理:
MyISAM タイプのテーブル。パフォーマンスを重視しており、InnoDB タイプよりも実行が高速です。ただし、InnoDB はトランザクション サポート、外部キー、および大量の SELECT 操作を実行する場合の高度なデータベース機能を提供しません。 MyISAM の方が良い選択です
1. データが大量の INSERT または UPDATE を実行する場合、パフォーマンス上の理由から、InnoDB テーブルを使用する必要があります
2。DELETE FROM テーブルの場合、InnoDB はテーブルを再作成しません。行ごとに削除します。
を参照してください。 select count( *) from table の場合、MyISAM は単に保存された行の数を読み取るだけです。 count(*) ステートメントに where 条件が含まれている場合、2 つのテーブルの操作は同じではありません。 table.number、つまり、テーブルから select count(*) を実行するとき、InnoDB はテーブル全体をスキャンして、行数を計算する必要があります
lock
テーブル ロック
は行ロック (行レベルでのロック) を提供します。これは、Oracle のタイプと一致します。 SELECT での非ロック読み取り さらに、MySQL が SQL ステートメントの実行時にスキャンする範囲を決定できない場合、InnoDB テーブルは行ロックもロックします。テーブル全体。たとえば、名前が「%aaa%」の場合、テーブルセット num=1 を更新します