ホームページ  >  記事  >  データベース  >  インポートを高速化するために MySQL ロード データ インファイルを最適化する方法

インポートを高速化するために MySQL ロード データ インファイルを最適化する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 17:34:03582ブラウズ

How to Optimize MySQL Load Data Infile for Faster Imports?

高速インポートのための MySQL Load Data Infile の最適化

「Load data infile」を使用して大量のデータセットを MySQL にインポートする場合、ユーザーはパフォーマンスのボトルネックに遭遇することがよくあります。この記事では、特に複数のキーを持つ大規模な InnoDB テーブルのインポート プロセスを高速化する方法について説明します。

インポートの高速化

インポート速度を最適化するには、次の点を考慮してください。

  1. 主キーの順序: 対象テーブルの主キーと同じ順序で CSV ファイルを並べ替えます。これにより、InnoDB のクラスター化主キーを利用してインポート プロセスが最適化されます。
  2. 切り捨てと自動コミット: データをロードする前にテーブルを切り捨て、自動コミットを無効にしてパフォーマンスを向上させます。
  3. データベース設定の最適化: オーバーヘッドを削減するために、一意のチェック、外部キー チェック、およびバイナリ ログを一時的に無効にします。
  4. チャンク読み込み: CSV ファイルをより小さなチャンクに分割して、メモリ要件を最小限に抑え、ロック競合を軽減します。

最適化されたインポート構文の例:

truncate <table>;

set autocommit = 0;

load data infile <path> into table <table>...

commit;

set autocommit = 1;
set unique_checks = 1;
set foreign_key_checks = 1;
set sql_log_bin=1;

再起動なしのクエリ終了

MySQL を再起動せずに実行速度の遅いクエリを終了するには、次のコマンドを使用します。

kill <process_id>;

このコマンドは、プロセス ID によって指定されたプロセスを終了します。プロセス ID は、show processlist コマンドから取得できます。

以上がインポートを高速化するために MySQL ロード データ インファイルを最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。