cari

Rumah  >  Soal Jawab  >  teks badan

php - Import 100,000 keping data Terdapat 1 juta keping data dalam pangkalan data.

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中文网2788 hari yang lalu784

membalas semua(4)saya akan balas

  • phpcn_u1582

    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

    balas
    0
  • 我想大声告诉你

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

    balas
    0
  • 滿天的星座

    滿天的星座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 @石记.

    balas
    0
  • 怪我咯

    怪我咯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.

    balas
    0
  • Batalbalas