ホームページ >バックエンド開発 >PHPチュートリアル >mySQLのMyISAMとInnoDBの違いは何ですか? MYSQLデータベースを最適化するにはどうすればよいですか? 、myisaminnodb_PHP チュートリアル

mySQLのMyISAMとInnoDBの違いは何ですか? MYSQLデータベースを最適化するにはどうすればよいですか? 、myisaminnodb_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:46:261116ブラウズ

mySQLのMyISAMとInnoDBの違いは何ですか? MYSQLデータベースを最適化するにはどうすればよいですか? 、myisaminnodb

MyISAM と InnoDB の基本的な違い

1.InnoDB は FULLTEXT 型インデックスをサポートしません。

2. InnoDB はテーブル内の特定の行数を保存しません。つまり、テーブルから select count(*) を実行するとき、InnoDB はテーブル全体をスキャンして、存在する行数を計算する必要があります。保存されている行数だけを読み出します。 count(*) ステートメントに where 条件が含まれている場合、2 つのテーブルの操作は同じであることに注意してください。

3. タイプ AUTO_INCREMENT のフィールドの場合、InnoDB にはこのフィールドのみのインデックスが含まれている必要がありますが、MyISAM テーブルでは他のフィールドとの結合インデックスを確立できます。

4. DELETE FROM テーブルの場合、InnoDB はテーブルを再作成せず、行ごとに削除します。 MyISAMはテーブルの場所です innodbは行ロックです

5. LOAD TABLE FROM MASTER 操作は InnoDB では機能しません。ただし、追加のテーブルについては、まず InnoDB テーブルを MyISAM テーブルに変更します。 InnoDB の機能 (外部キーなど) は適用されません。

さらに、InnoDB テーブルの行ロックは絶対的ではありません。MySQL が SQL ステートメントの実行時にスキャンする範囲を決定できない場合、InnoDB テーブルはテーブル全体もロックします (たとえば、テーブル セット num=1 を更新します)。ここで、「2 %」のような名前を付けます

6.InnoDB はさまざまなことをサポートします

実際の状況に基づいてストレージ エンジンを選択してください。

一般に、クエリが多い場合は myIsam を使用することをお勧めします。

トランザクション処理や外部キーが必要な場合は、InnoDB の方が良い方法かもしれません。

MYSQLデータベースを最適化する方法:

1. 最も適切なフィールド属性を選択し、定義されたフィールドの長さをできる限り短くし、フィールドを「都道府県、性別」などの NOT NULL に設定するようにします。ENUM に設定するのが最善です

2、サブクエリの代わりに結合を使用します

3. UNION を使用して手動で作成した一時テーブルを置き換えます

4. トランザクション処理 (追加と変更を同時に行うなど、データの整合性を確保するため、両方が true の場合は両方が実行され、一方が失敗した場合は失敗します)

5. インデックスを適切に構築する (インデックスの構築方法?インデックス作成の長所と短所は何ですか?)

6、SQLステートメントを最適化します

7、mysqlの実行計画を確認できるように説明します

8、サブテーブル(縦サブテーブル、横サブテーブル?)

関連読書

http://www.phpernote.com/mysql/500.html

http://www.nowmagic.net/librarys/veda/detail/1899

www.bkjia.com本当http://www.bkjia.com/PHPjc/1033982.html技術記事 mySQLのMyISAMとInnoDBの違いは何ですか? MYSQLデータベースを最適化するにはどうすればよいですか? , myisaminnodb MyISAM と InnoDB の基本的な違い 1.InnoDB は FULLTEXT 型インデックスをサポートしません。 2.InnoDB は保証されていません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。