Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mensimulasikan MySQL ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE?

Bagaimanakah Saya Boleh Mensimulasikan MySQL ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE?

Susan Sarandon
Susan Sarandonasal
2024-12-06 08:39:11265semak imbas

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

Meniru MySQL ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE

LOAD DATA INFILE kekal sebagai pendekatan utama untuk mengimport set data yang banyak ke dalam MySQL dengan pantas. Keberkesanannya mungkin gagal apabila ingin melaksanakan tingkah laku yang serupa dengan INSERT IGNORE atau REPLACE, kerana sokongan ON DUPLICATE KEY UPDATE tidak hadir. Namun begitu, ON DUPLICATE KEY UPDATE menawarkan faedah berbanding REPLACE, mengelakkan penalti prestasi yang dikaitkan dengan pemadaman dan sisipan apabila menemui pendua, serta mengekalkan ID autoincrement.

Untuk meniru fungsi ON DUPLICATE KEY UPDATE semasa LOAD DATA KEY UPDATE ikuti operasi INFILE, ini langkah:

  1. Tubuhkan Jadual Sementara: Cipta jadual sementara yang dipanggil 'temporary_table' berkongsi struktur yang sama seperti jadual sasaran 'target_table'.
  2. Pilihan: Lumpuhkan Indeks: Untuk mengoptimumkan prestasi, hapuskan indeks daripada jadual sementara menggunakan arahan seperti 'DROP INDEX' terhadap indeks 'PRIMARY' dan 'some_other_index'.
  3. Muat Data ke dalam Jadual Sementara: Laksanakan perintah LOAD DATA INFILE untuk memuatkan fail CSV ke dalam jadual sementara.
  4. Salin Data dengan ON DUPLICATE KEY UPDATE: Gunakan pernyataan INSERT yang merangkumi klausa ON DUPLICATE KEY UPDATE untuk menyalin data daripada jadual sementara ke jadual sasaran, mengemas kini nilai kunci pendua.
  5. Alih Keluar Jadual Sementara: Setelah pemindahan data selesai, padamkan jadual sementara .

Menggunakan arahan 'SHOW INDEX FROM' dan 'SHOW COLUMNS FROM' membolehkan automasi proses ini untuk mana-mana jadual tertentu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan MySQL ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE?. 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