Bagaimana untuk Muat Naik Pukal data fail CSV ke dalam Jadual MySql? Cara yang sangat pantas menggunakan LOAD DATA.

PHPz
Lepaskan: 2024-08-19 16:40:13
asal
132 orang telah melayarinya

? pengenalan

Adakah anda masih menggunakan gelung "untuk" atau "semasa" untuk mengulangi baris anda dan memasukkannya ke dalam pangkalan data anda? Adakah anda masih menulis kod berasingan untuk membaca fail .csv dan memuat naiknya ke pangkalan data MySQL anda?

Sebut "NO" kepada logik linear dengan pernyataan "LOAD DATA" yang disediakan oleh MySQL. Sediakan diri anda untuk menukar kod anda untuk meminimumkan garisan dan meningkatkan prestasi secara drastik.

MySql menyediakan penyataan LOAD DATA, yang merupakan cara berkelajuan tinggi untuk membaca data daripada fail teks dan memasukkannya ke dalam jadual dengan kod yang sangat minimum.

? Apakah Penyata INFILE LOAD DATA?

Seperti dokumen rasmi MySQL yang dinyatakan, pernyataan LOAD DATA digunakan untuk Membaca Data daripada fail dengan cara yang sangat pantas dan anda boleh memasukkan data ini dalam jadual anda dengan satu pertanyaan, bukannya menekan db anda beberapa kali dengan " INSERT INTO" pertanyaan.

MySQL juga menyediakan pernyataan -> "PILIH…KE DALAM OUTFILE", yang melakukan betul-betul bertentangan dengan apa yang dilakukan oleh "LOAD DATA", iaitu membaca datadari jadual ke fail.

utiliti mysqlimport yang disediakan oleh MySql secara dalaman memanggil pernyataan LOAD DATA pada pelayan untuk mengimport data.

? Bagaimana cara menggunakannya?

Di atas coretan inti menunjukkan penyataan data beban generik. Semua pilihan yang tersedia disebutkan dalam kod di atas.

Sekarang mari kita fokus pada contoh mudah hanya membaca fail .csv dan memasukkan barisnya ke dalam jadual yang serasi.

Contoh mudah :

LOAD DATA INFILE ‘data.csv’ INTO TABLE db.my_table
Salin selepas log masuk

Contoh yang menarik dengan semua pilihan penting :

Tidak perlu dikatakan bahawa fail CSV anda harus diformat dengan betul untuk penyataan ini berfungsi?.

Dan voila, menggunakan pernyataan di atas, .csv anda dengan lebih daripada 100 ribu baris akan diimport ke dalam jadual anda dalam beberapa saat.

Sekarang, beberapa perkara penting yang perlu diberi perhatian:

Pernyataan di atas berjalan pada tahap MySql, oleh itu fail sumber disalin dari klien ke pelayan untuk mengimportnya.
Ini menimbulkan beberapa isu keselamatan, kami perlu memastikan sambungan pelanggan-pelayan terjamin semasa menggunakan kod ini.

Dalam MySql 8.0, keupayaan untuk menggunakan LOCAL ditetapkan sebagai Palsu secara lalai. Memandangkan pelayan dan pelanggan anda harus dikonfigurasikan untuk membenarkan LOCAL, sesetengah daripada anda mungkin mendapat ralat kebenaran.

Sekiranya ralat kebenaran, kami perlu mengatasinya dengan mendayakanlocal_infile:

SET GLOBAL local_infile = true;
Salin selepas log masuk

Nota: Mengatasi bendera ini bukanlah penyelesaian keselamatan tetapi sebaliknya sebagai pengakuan untuk menerima risiko, anda boleh merujuk dokumentasi ini untuk mendapatkan maklumat lanjut.

? Kesimpulan

MySql LOAD DATA statement digunakan untuk membaca fail dalam masa yang sangat singkat.
Anda boleh menggunakan kod ini dengan mana-mana API bahagian belakang untuk menyediakan fail sumber.
Fail sumber boleh berupa mana-mana fail teks, kami telah menggunakan .csv dalam contoh ini.

MUAT DATA TEMPATANmenyalin fail sumber ke pelayan anda melalui MySql maka langkah keselamatan di bahagian pelayan harus dilaksanakan.

Utiliti

mysqlimportmenggunakan penyata LOAD DATA secara dalaman.

Anda boleh mengabaikan pengepala dalam CSV dengan menambahABAIKAN 1 BARISdalam kenyataan.

How to Bulk Upload CSV file data into MySql Table? A very fast way using LOAD DATA.

? Rujukan

Dokumen Rasmi

Atas ialah kandungan terperinci Bagaimana untuk Muat Naik Pukal data fail CSV ke dalam Jadual MySql? Cara yang sangat pantas menggunakan LOAD DATA.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!