ホームページ >データベース >mysql チュートリアル >ハイパフォーマンス MySQL - ストレージ エンジン MyISAM と InnoDB の基本的な違いの紹介
このブログ投稿では、主に MyISAM と InnoDB の違いを要約します
InnoDB と MyISAM は、MySQL を使用するときに最も一般的に使用される 2 つのテーブル タイプであり、特定のアプリケーションに応じて、それぞれ独自の長所と短所があります。 。基本的な違いは次のとおりです:
(1) MyISAM タイプはトランザクション処理などの高度な処理をサポートしませんが、InnoDB タイプはトランザクションをサポートします。
(2) InnoDB はデータ行のロックをサポートしますが、MyISAM は行のロックをサポートせず、テーブル全体のロックのみをサポートします。ここで、InnoDB テーブルの行ロックは絶対的ではないことに注意してください。SQL ステートメントの実行時に MySQL がスキャンする範囲を決定できない場合、InnoDB テーブルはテーブル全体もロックします (たとえば、テーブル セット num= を更新します)。 1 ここで、名前は「% aaa%」のようなものです
(3) InnoDB は外部キーをサポートしていますが、MyISAM はサポートしていません。
(4) InnoDB はテーブル内の特定の行数を保存しません。つまり、テーブルから select count() を実行するとき、InnoDB はテーブル全体をスキャンして行数を計算する必要があります。ただし、MyISAM は保存された行数を読み取るだけです。 count() ステートメントに where 条件が含まれている場合、2 つのテーブルの操作は同じであることに注意してください。
以上がハイパフォーマンス MySQL - ストレージ エンジン MyISAM と InnoDB の基本的な違いの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。