Bagaimanakah Saya Boleh Mengoptimumkan Prestasi INFILE DATA LOAD MySQL untuk Import Data Besar?

Patricia Arquette
Lepaskan: 2024-11-07 19:01:02
asal
191 orang telah melayarinya

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

Mengoptimumkan Prestasi INFILE DATA LOAD MySQL

Apabila mengimport sejumlah besar data ke dalam jadual MySQL menggunakan arahan LOAD DATA INFILE, prestasi boleh menjadi kebimbangan yang ketara. Satu cabaran yang timbul ialah pertukaran antara mengimport tanpa kunci, yang boleh mengakibatkan pemuatan data yang lebih cepat tetapi penciptaan kunci yang lebih perlahan, dan mengimport dengan kunci, yang melambatkan proses import. Berikut ialah beberapa strategi untuk mempercepatkan import:

Pesan Data mengikut Kunci Utama:

Sebelum memuatkan data, susun fail CSV anda mengikut susunan kunci utama bagi jadual sasaran. Ini amat berfaedah apabila menggunakan InnoDB, kerana ia menggunakan kunci primer berkelompok, bermakna data akan dimuatkan dengan lebih cepat apabila diisih.

Lumpuhkan Kekangan:

Lumpuhkan unik dan asing buat sementara waktu kekangan utama (set unique_checks = 0; set foreign_key_checks = 0;) untuk meningkatkan kelajuan import. Setelah data dimuatkan, anda boleh mendayakan kekangan ini semula (set unique_checks = 1; set foreign_key_checks = 1;).

Lumpuhkan Pengelogan Binari:

Melumpuhkan pengelogan binari (set sql_log_bin=0;) juga boleh meningkatkan masa import. Apabila didayakan, MySQL log semua pertanyaan tulis ke log binari untuk tujuan replikasi. Melumpuhkannya membebaskan sumber yang boleh digunakan untuk memuatkan data.

Truncate Table:

Sebelum memuatkan data, potong jadual sasaran untuk mengalih keluar sebarang baris sedia ada (truncate < ;meja>;). Ini memastikan bahawa data yang anda import ialah satu-satunya data dalam jadual.

Pisah Fail CSV:

Jika fail CSV anda sangat besar, pertimbangkan untuk membahagikannya kepada ketulan yang lebih kecil. Ini membolehkan MySQL memuatkan data dalam kelompok yang lebih kecil, mengurangkan masa yang diperlukan untuk setiap operasi pemuatan.

Tamatkan Pertanyaan Perlahan:

Untuk menamatkan pertanyaan perlahan tanpa memulakan semula MySQL , gunakan arahan KILL QUERY. Arahan ini boleh dilaksanakan daripada baris arahan MySQL atau menggunakan alat seperti phpMyAdmin.

Petua Tambahan:

  • Gunakan pilihan REPLACE atau INSERT IGNORE untuk mengelakkan ralat kunci pendua.
  • Gunakan kata kunci TEMPATAN untuk menghalang jadual sementara daripada dibuat pada setiap import.
  • Gunakan pelayan berprestasi tinggi dengan sumber RAM dan CPU yang mencukupi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Prestasi INFILE DATA LOAD MySQL untuk Import Data Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan