ホームページ > php教程 > php手册 > mysql における InnoDB と MyISAM の違いの分析のまとめ

mysql における InnoDB と MyISAM の違いの分析のまとめ

WBOY
リリース: 2016-06-13 12:29:34
オリジナル
1652 人が閲覧しました

MyIASM は、次の拡張機能を備えた IASM テーブルの新しいバージョンです:
バイナリ レベルの移植性。
NULL 列インデックス。
可変長行の ISAM テーブルよりも断片化が少ない。
大きなファイルをサポートします。
インデックス圧縮の改善。
キーの統計的分散が改善されました。
auto_increment 処理の改善と高速化。

次に、詳細と具体的な実装の違いを示します。

1.InnoDB は FULLTEXT タイプのインデックスをサポートしません。
2. InnoDB はテーブル内の特定の行数を保存しません。つまり、テーブルから select count(*) を実行するとき、InnoDB はテーブル全体をスキャンして行数を計算する必要がありますが、MyISAM はテーブル全体をスキャンする必要があります。単純に読み取って保存するだけで十分です。 count(*) ステートメントに where 条件が含まれている場合、2 つのテーブルの操作は同じであることに注意してください。
3. AUTO_INCREMENT 型のフィールドの場合、InnoDB にはこのフィールドのみのインデックスが含まれている必要がありますが、MyISAM テーブルでは他のフィールドとの結合インデックスを確立できます。
4. DELETE FROM テーブルの場合、InnoDB はテーブルを再作成せず、行ごとに削除します。
5. LOAD TABLE FROM MASTER 操作は InnoDB では機能しません。解決策は、まず InnoDB テーブルを MyISAM テーブルに変更し、その後、追加の InnoDB の場合は InnoDB テーブルに変更することです。使用される機能 (外部キーなど) テーブルは適用されません。

さらに、InnoDB テーブルの行ロックは絶対的なものではなく、MySQL が SQL ステートメントの実行時にスキャンする範囲を決定できない場合、InnoDB テーブルはテーブル セットの更新などのテーブル全体もロックします。 num=1 where name like “�a%”

ビジネス タイプに応じて適切なテーブル タイプを選択することによってのみ、MySQL のパフォーマンス上の利点を最大化できます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート