ホームページ > データベース > mysql チュートリアル > データのインポートを高速化するために MySQL LOAD DATA INFILE を最適化するにはどうすればよいですか?

データのインポートを高速化するために MySQL LOAD DATA INFILE を最適化するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-08 04:59:02
オリジナル
962 人が閲覧しました

How Can I Optimize MySQL LOAD DATA INFILE for Faster Data Imports?

迅速なデータ インポートのための MySQL LOAD DATA INFILE の最適化

LOAD DATA INFILE を使用して大量のデータセットを MySQL にインポートすると、特に次の場合に時間がかかることがあります。インポート後にインデックスを作成します。この記事では、プロセスを高速化して、終了したクエリがデータベース内で実行され続ける問題に対処するためのさまざまな手法を検討します。

LOAD DATA INFILE の高速化

InnoDB テーブルの場合は、次の点を考慮してください。次の最適化のヒント:

  • CSV ファイルを主キー順に並べ替えます: InnoDB はクラスター化された主キーを利用するため、ファイルを並べ替えると読み込みプロセスが大幅に高速化されます。
  • ロード前にテーブルを切り詰めます: 既存のデータを削除して、読み取りと書き込みにかかる時間を最小限に抑えます。
  • 自動コミットを無効にします: トランザクションのコミットを遅らせるには、autocommit=0 を設定しますインポート全体が完了するまで、コミット数が減り、パフォーマンスが向上します。
  • チェックを無効にする: set unique_checks=0 および setforeign_key_checks=0 を使用して、一意キーおよび外部キーのチェックを一時的に無効にします。
  • バイナリ ログを無効にする: ログの書き込みに関連するオーバーヘッドを排除するには、sql_log_bin=0 を設定してバイナリ ログを一時停止します。
  • CSV ファイルをチャンクに分割します: CSV ファイルをより小さなセグメントに分割して読み込みを高速化します。

クエリの終了

MySQL を再起動せずに遅いクエリを終了するには、次の手順を試してください:

  • KILL コマンド: KILL {query_id} コマンドを発行して、特定のクエリを終了します。
  • クライアント接続を閉じる: クエリが実行されたターミナル ウィンドウを強制的に閉じます。が実行された場合は、実行中のクエリも停止します。ただし、これによりデータの破損や不整合が発生する可能性があります。

これらの最適化を適用すると、LOAD DATA INFILE のパフォーマンスが大幅に向上し、データ インポート プロセスを合理化できます。

以上がデータのインポートを高速化するために MySQL LOAD DATA INFILE を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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