php - Import 100,000 keping data Terdapat 1 juta keping data dalam pangkalan data.
PHP中文网
PHP中文网 2017-05-16 13:09:47
0
4
781

Keperluan khusus

  1. Terdapat 1 juta keping data dalam pangkalan data;

  2. 100,000 keping data perlu diimport;

  3. 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?

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(4)
phpcn_u1582

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
我想大声告诉你

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 saat

Anda 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...

滿天的星座

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan