Meniru ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE dalam MySQL
LOAD DATA INFILE dalam MySQL ialah alat yang berkuasa untuk mengimport set data yang besar dengan pantas. Walau bagaimanapun, ia tidak mempunyai sokongan untuk klausa ON DUPLICATE KEY UPDATE, yang boleh membawa kepada ketidakkonsistenan data atau cabaran prestasi. Untuk memintas pengehadan ini, pendekatan alternatif diperlukan.
Untuk meniru kefungsian ON DUPLICATE KEY UPDATE, pertimbangkan langkah berikut:
1. Cipta Jadual Sementara:
CREATE TEMPORARY TABLE temporary_table LIKE target_table;
2. Optimumkan Jadual Sementara (Pilihan):
Percepatkan pemuatan data dengan mengalih keluar indeks daripada jadual sementara:
SHOW INDEX FROM temporary_table; DROP INDEX `PRIMARY` ON temporary_table; DROP INDEX `some_other_index` ON temporary_table;
3. Muatkan CSV ke dalam Jadual Sementara:
Lakukan import data asas menggunakan LOAD DATA INFILE:
LOAD DATA INFILE 'your_file.csv' INTO TABLE temporary_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (field1, field2);
4. Salin Data dengan ON DUPLICATE KEY UPDATE:
Kemas kini jadual sasaran sambil mengekalkan rekod sedia ada:
SHOW COLUMNS FROM target_table; INSERT INTO target_table SELECT * FROM temporary_table ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2);
5. Alih Keluar Jadual Sementara:
Setelah pemindahan data selesai, buang jadual sementara:
DROP TEMPORARY TABLE temporary_table;
Dengan mengikuti langkah-langkah ini, anda boleh meniru fungsi ON DUPLICATE KEY UPDATE dengan LOAD DATA INFILE, mengoptimumkan pemuatan data sambil mengekalkan integriti data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru PADA KEMASKINI KUNCI PENDULIK Menggunakan LOAD DATA INFILE dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!