Pemasukan Baris yang Cekap dalam Pangkalan Data MySQL
Memasukkan sejumlah besar baris ke dalam pangkalan data MySQL boleh menjadi tugas yang memakan masa, terutamanya apabila menggunakan kaedah tradisional seperti sisipan satu baris. Untuk meningkatkan prestasi, pertimbangkan untuk menggunakan teknik yang lebih cekap.
Sisipan Baris Tunggal lwn. Sisipan Pukal
Biasanya, sisipan satu baris digunakan untuk memasukkan rekod individu satu di suatu masa. Walaupun pendekatan ini mudah, ia boleh menjadi tidak cekap apabila berurusan dengan set data yang besar. Sebaliknya, pertimbangkan untuk menggunakan sisipan pukal untuk memasukkan berbilang baris secara serentak. Dengan menggabungkan berbilang nilai baris ke dalam satu pernyataan INSERT, penjimatan masa yang ketara boleh dicapai.
Pelaksanaan Kod
Kod berikut menunjukkan pendekatan sisipan pukal yang boleh meningkatkan dengan ketara kelajuan sisipan:
public static void BulkToMySQL() { string ConnectionString = "server=192.168.1xxx"; StringBuilder sCommand = new StringBuilder("INSERT INTO User (FirstName, LastName) VALUES "); using (MySqlConnection mConnection = new MySqlConnection(ConnectionString)) { List<string> Rows = new List<string>(); for (int i = 0; i < 100000; i++) { Rows.Add(string.Format("('{0}','{1}')", MySqlHelper.EscapeString("test"), MySqlHelper.EscapeString("test"))); } sCommand.Append(string.Join(",", Rows)); sCommand.Append(";"); mConnection.Open(); using (MySqlCommand myCmd = new MySqlCommand(sCommand.ToString(), mConnection)) { myCmd.CommandType = CommandType.Text; myCmd.ExecuteNonQuery(); } } }
Kod ini berulang ke atas baris untuk dimasukkan dan dibina pernyataan INSERT pukal dengan menggabungkan nilai baris individu. Pernyataan yang terhasil memasukkan semua baris serentak, yang membawa kepada peningkatan prestasi yang ketara.
Melepaskan Data Input untuk Keselamatan
Adalah penting untuk ambil perhatian bahawa sisipan pukal boleh mendedahkan potensi kelemahan keselamatan. Untuk mengelakkan suntikan SQL, adalah penting untuk melepaskan sebarang input pengguna sebelum memasukkannya ke dalam pernyataan INSERT. Seperti yang ditunjukkan dalam kod di atas, MySqlHelper.EscapeString boleh digunakan untuk tujuan ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Sebilangan Besar Baris dengan Cekap ke dalam Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!