MyIASM は、次の拡張機能を備えた IASM テーブルの新しいバージョンです:
バイナリレベルの移植性。
NULL 列インデックス。
可変長行の ISAM テーブルよりも断片化が少ない。
大きなファイルをサポートします。
インデックス圧縮の改善。
キーの統計的分散の改善。
auto_increment 処理の改善と高速化。
以下は詳細と具体的な実装の違いです:
1.InnoDB は FULLTEXT タイプのインデックスをサポートしません。
2.InnoDB はテーブル内の特定の行数を保存しません。つまり、select count(*) from table を実行するとき、InnoDB はテーブル全体をスキャンして行数を計算する必要がありますが、MyISAM は単に読み取るだけです。保存された行を数えるだけです。 count(*) ステートメントに where 条件が含まれている場合、2 つのテーブルの操作は同じであることに注意してください。
3. タイプ AUTO_INCREMENT のフィールドの場合、InnoDB にはこのフィールドのみのインデックスが含まれている必要がありますが、MyISAM テーブルでは他のフィールドとの結合インデックスを確立できます。
4. DELETE FROM テーブルの場合、InnoDB はテーブルを再作成せず、行ごとに削除します。
5. LOAD TABLE FROM MASTER 操作は InnoDB では機能しません。解決策は、まず InnoDB テーブルを MyISAM テーブルに変更し、データをインポートした後に InnoDB テーブルに変更することです (外部キーなど)が使用されている場合、表は適用されません。
さらに、InnoDB テーブルの行ロックは絶対的ではありません。SQL ステートメントの実行時に MySQL がスキャンする範囲を決定できない場合、InnoDB テーブルはテーブル全体をロックします。たとえば、テーブル セット num=1 もロックされます。 「%aaa %」のような名前
ビジネスの種類に応じて適切なテーブル タイプを選択することによってのみ、MySQL のパフォーマンス上の利点を最大化することができます。