php - Apabila mengimport excel ke dalam laravel dan terdapat sejumlah besar data, apakah cara terbaik untuk menangani data pendua?
世界只因有你
世界只因有你 2017-05-16 12:58:18
0
2
1151

Gunakan laravel excel untuk mengimport excel pengguna
Boleh dijangkakan excel akan mempunyai ribuan hingga puluhan ribu penyertaan.
Perlu dinilai untuk tidak mengimport pengguna pendua Contohnya, jika 10,000 orang diimport dan sudah ada 100 orang dalam pangkalan data, maka 100 orang ini perlu dinilai dan pemprosesan logik tambahan dilakukan. 9,900 orang lagi diimport. Dan ia merekodkan 9900 status sisipan, seperti 8000 kejayaan dan 1900 kegagalan. Saya sedang memikirkan beberapa penyelesaian dan saya tidak tahu yang mana satu lebih munasabah
1. Kaedah sisipan kelompok tradisional tidak dapat menentukan dengan tepat sama ada setiap keping data diulang atau merekodkan status pemulangan. Tetapi kecekapan harus agak tinggi.
2. Gunakan gelung for untuk menyemak sama ada ia wujud sebelum memasukkan, dan kemudian merekodkan status selepas memasukkan Dari logik perniagaan, ia adalah yang paling sesuai untuk keperluan, tetapi kecekapannya adalah sangat rendah ia akan menyebabkan 500 ralat atau tamat masa dengan mudah.
3. Tingkatkan berdasarkan 2. Tulis keseluruhan proses ke dalam baris gilir, kumpulkan ketulan ke dalam baris gilir, dan kemudian proseskannya di latar belakang. Kelemahannya ialah pengalaman pengguna agak lemah dan tidak boleh diperolehi serta-merta. Ia juga perlu bekerjasama dengan sistem pemberitahuan untuk melakukan ini.
4. Selepas menyemak, terdapat cara lain untuk menggunakan transaksi untuk melakukan dalam blok. Saya tidak tahu cara ini berfungsi dan saya belum mengujinya lagi. Tolong berikan saya nasihat anda.

Saya tidak tahu sama ada anda mempunyai idea yang lebih baik. Ia boleh mengimbangi kecekapan dan logik. Terima kasih

世界只因有你
世界只因有你

membalas semua(2)
过去多啦不再A梦

Melihat kepada maksud soalan, saya faham ia adalah
1 upload Excel
2 analisis, penyimpanan
3

Keseluruhan proses sepatutnya memakan masa yang agak lama Anda boleh memberi pengguna status [Pemprosesan], memprosesnya di latar belakang dan mengeluarkan hasilnya selepas ia diproses sepenuhnya.

Untuk menilai sama ada terdapat pengguna pendua dan merekodkan status kejayaan dan kegagalan, anda boleh mempertimbangkan untuk menyimpannya ke redis dahulu, yang akan lebih cepat, dan akhirnya semua keputusan akan disimpan dalam pangkalan data untuk diproses

大家讲道理

Beritahu saya pendapat saya, jangan komen jika anda tidak menyukainya.

Anggap bahawa pengecam unik dalam pangkalan data dan excel ialah nombor ID pengguna:

  • Semak nombor ID sedia ada dalam pangkalan data,

  • Selepas Excel dimuat naik, ia merentasi setiap baris dan menentukan sama ada nombor ID dalam sekeping data semasa ditemui dalam tatasusunan dalam pangkalan data

  • Jika tiada, tuliskannya ke dalam pangkalan data dan tambahkan nombor ID pada tatasusunan yang ditemui,

  • Jika ya, langkau

Dalam persekitaran dalam talian saya, saya memuat naik fail Excel dengan 50,000+ baris pada satu masa, dan masa menunggu hanya kira-kira 6 saat
Sudah tentu, bilangan baris dan lajur tunggal dalam setiap persekitaran dalam talian dan fail Excel adalah berbeza.
Ini untuk rujukan poster sahaja

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