Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mensimulasikan ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE MySQL?

Bagaimana untuk Mensimulasikan ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-15 13:15:18757semak imbas

How to Simulate ON DUPLICATE KEY UPDATE with MySQL's LOAD DATA INFILE?

Meniru ON DUPLICATE KEY UPDATE dengan MySQL LOAD DATA INFILE

Walaupun kelebihan kelajuannya untuk memuatkan set data yang besar ke dalam MySQL, LOAD DATA INFILE kekurangan asli sokongan untuk fungsi ON DUPLICATE KEY UPDATE. Had ini menimbulkan cabaran apabila mengemas kini rekod sedia ada tanpa menggantikan ID kenaikan automatik atau menanggung overhed yang tidak perlu.

Penyelesaian:

Untuk meniru ON DUPLICATE KEY UPDATE menggunakan LOAD DATA INFILE, anda boleh mengikuti ini langkah:

  1. Buat Jadual Sementara: Bina jadual sementara dengan struktur yang sama dengan jadual sasaran menggunakan CREATE TEMPORARY JADUAL.
  2. Optimalkan Pilihan : Untuk mempercepatkan proses, lumpuhkan indeks pada jadual sementara dengan melaksanakan arahan DROP INDEX untuk sebarang indeks sedia ada.
  3. Muatkan Data ke dalam Jadual Sementara: Gunakan LOAD DATA INFILE untuk mengimport data CSV ke dalam jadual sementara, menyatakan pembatas medan dan kepungan yang sesuai.
  4. Pindahkan Data dengan ON DUPLICATE KEY UPDATE: Guna penyata INSERT dengan ON DUPLICATE KEY UPDATE untuk menyalin data dari jadual sementara ke jadual sasaran. Pastikan untuk memadankan nama lajur dengan betul.
  5. Padam Jadual Sementara: Lepaskan jadual sementara dengan melaksanakan DROP TEMPORARY TABLE.

Pendekatan ini memanfaatkan kelajuan LOAD INFILE DATA sambil mencontohi kefungsian ON DUPLICATE KEY UPDATE. Dengan mengautomasikan proses dengan SHOW INDEX FROM dan SHOW COLUMNS FROM, anda boleh menyesuaikannya dengan mudah ke mana-mana jadual.

Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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