ホームページ  >  記事  >  バックエンド開発  >  MySQL マニュアル バージョン 5.0.20-MySQL の最適化 (4) (1) (3)_PHP チュートリアル

MySQL マニュアル バージョン 5.0.20-MySQL の最適化 (4) (1) (3)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:03:23976ブラウズ



7.2.12 INSERT の高速化


レコードの挿入にかかる時間は、次の要因によって決まります。次の数値は、影響の割合を大まかに示します:


接続: (3)


サーバーにクエリを送信: (2)


クエリを解析: (2)


レコードの挿入: (1 x レコード サイズ)


インデックスの挿入: (1 x インデックスの数)


Close: ( 1)


初期化中にデータテーブルを開くコストは、クエリが実行されるたびに 1 回しか行われないため、ここでは考慮されません。


B-treeインデックスの場合、インデックスの数が増えると、レコードの挿入速度がlog Nの割合で低下します。


次の方法を使用して挿入速度を上げることができます:


同じクライアント上で同時に多くのレコードを挿入する場合は、複数の VALUES 値を指定した INSERT ステートメントを使用できます。このアプローチは、単一値の INSERT ステートメントを使用するよりもはるかに高速です (場合によっては高速です)。空ではないデータ テーブルにレコードを追加する場合は、変数Bulk_insert_buffer_size の値を調整して速度を上げることができます。詳細は「5.2.3 サーバシステム変数」を参照してください。


異なるクライアントから大量のレコードを挿入する場合は、INSERT DELAYED ステートメントを使用すると速度が向上する可能性があります。詳細は「14.1.4 INSERT構文」を参照してください。


MyISAM の場合、現時点でレコードが削除されていない限り、SELECT ステートメントの実行中にレコードを挿入できます。


テキスト ファイルをデータ テーブルにロードする場合は、LOAD DATA INFILE を使用できます。これは通常、多数の INSERT ステートメントを使用するよりも 20 倍のコストがかかります。詳細は、「14.1.5 LOAD DATA INFILEの構文」を参照してください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630976.html技術記事 7.2.12 INSERT の高速化 レコードの挿入にかかる時間は、次の要因によって決まります。次の数値は、影響の割合を大まかに示します。 接続: (3) サーバーへのクエリの送信: (2)...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。