Keperluan khusus
Terdapat 1 juta keping data dalam pangkalan data;
100,000 keping data perlu diimport;
Jika data yang hendak diimport wujud dalam jadual data, tamatkan import data;
Soalan
Bagaimana untuk mengimport setiap keping data dengan cepat apabila ia perlu dibandingkan dan melancarkan semula data jika import gagal?
Anggap bahawa jadual sasaran dipanggil sasaran (1 juta data), dan jadual yang akan diimport dipanggil sumber (100,000 data).
Sebahagian besar penggunaan masa dalam contoh ini adalah untuk menentukan sama ada rekod dalam kedua-dua jadual adalah sama, saya rasa penulis mahu semua medan adalah sama (kecuali medan id) sebelum mereka dianggap sebagai. rekod yang sama.
Kira nilai seperti Hash untuk setiap rekod, yang boleh disimpan dalam medan sasaran dan sumber yang baru dibuat (HashValue Jumlah pengiraan ialah 1.1 juta).
Kemudian gunakan pernyataan berikut untuk mengimport data
Jika anda menganggap kecekapan transaksi, ia mesti tidak tinggi
Sila rujuk di bawah untuk idea peribadi:
1 tentukan dahulu sama ada data yang hendak disisipkan wujud
pilih id daripada jadual di mana id masuk('k1,k2,k3');
2 Tidak wujud
Data 10w, 1 persegi, kelajuan pemasukan, diselesaikan dalam masa 2 saathttps://my.oschina.net/famous...
Idea peribadi saya ialah: perkara utama ialah menilai berat dan mewujudkan indeks unik untuk memastikan keunikan semasa mengimport Untuk import kumpulan, anda boleh merujuk kepada kaedah @石记.
Berdasarkan masalah ini, terdapat masalah besar semasa import berikutnya, dan import data adalah perlahan, jadi saya menulis artikel tentang ini:
/a/11...
Semoga ada yang boleh jadikan rujukan selepas melihatnya nanti.