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?
Katakan "TIDAK" 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.
Seperti dokumen rasmi MySQL negeri, 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 pertanyaan "INSERT INTO".
MySQL juga menyediakan pernyataan -> "PILIH…KE DALAM OUTFILE", yang melakukan betul-betul bertentangan dengan apa yang dilakukan oleh "LOAD DATA", iaitu membaca data daripada jadual ke fail.
utiliti mysqlimport yang disediakan oleh MySql secara dalaman memanggil pernyataan LOAD DATA pada pelayan untuk mengimport data.
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
Contoh yang menarik dengan semua pilihan penting :
Tidak perlu dikatakan bahawa fail CSV anda harus diformat dengan betul agar pernyataan 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: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.Pernyataan di atas dijalankan 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.
Sekiranya ralat kebenaran, kami perlu mengatasinya dengan mendayakan
local_infile
SET GLOBAL local_infile = true;
Nota: Mengatasi bendera ini bukanlah penyelesaian keselamatan tetapi sebaliknya sebagai pengakuan menerima risiko, anda boleh merujuk dokumentasi ini untuk mendapatkan maklumat lanjut.
? Kesimpulan
Penyata MySql LOAD DATA digunakan untuk membaca fail dalam masa yang sangat singkat.
Fail sumber boleh berupa sebarang fail teks, kami telah menggunakan .csv dalam contoh ini.
MUAT DATA TEMPATANmenyalin fail sumber ke pelayan anda melalui MySql oleh itu langkah keselamatan di bahagian pelayan harus dilaksanakan. Utiliti
mysqlimportmenggunakan penyata LOAD DATA secara dalaman. Anda boleh mengabaikan pengepala dalam CSV dengan menambahkan
ABAIKAN 1 BARISdalam pernyataan.
? Rujukan
Dokumen RasmiAtas 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!