Rumah > Soal Jawab > teks badan
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?
phpcn_u15822017-05-16 13:11:47
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
IF EXISTS(
SELECT TOP 1 1
FROM source a
INNER JOIN target b
ON a.hashValue = b.hashValue
) BEGIN
-- 返回重复记录
SELECT a.*
FROM source a
INNER JOIN target b
ON a.hashValue = b.hashValue
END
ELSE
BEGIN
INSERT INTO Target(filed1, field2, field3, field4 ... hashValue)
SELECT
t.filed1,
t.field2,
t.field3,
t.field4, ..., t.hashValue
FROM target t
END
我想大声告诉你2017-05-16 13:11:47
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 saatAnda boleh membaca artikel yang saya tulis sebelum ini, mengoptimumkan sisipan data 20w pada satu masa untuk disiapkan dalam masa 3 saat
https://my.oschina.net/famous...
滿天的星座2017-05-16 13:11:47
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 @石记.
怪我咯2017-05-16 13:11:47
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.