ホームページ  >  記事  >  バックエンド開発  >  mysql_PHP チュートリアルの InnoDB と MyISAM の差分分析の概要

mysql_PHP チュートリアルの InnoDB と MyISAM の差分分析の概要

WBOY
WBOYオリジナル
2016-07-21 15:52:401044ブラウズ

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 のパフォーマンス上の利点を最大化することができます。

www.bkjia.com本当http://www.bkjia.com/PHPjc/318865.html技術記事 MyIASM は、次の拡張機能を備えた IASM テーブルの新しいバージョンです。 バイナリ レベルの移植性。 NULL 列インデックス。 可変長行の場合、ISAM テーブルよりも断片化が少なくなります。 大きなファイルもサポートされています。 インデックス圧縮の改善...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP次の記事:PHP