Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memasukkan Sebilangan Besar Baris dengan Cekap ke dalam Pangkalan Data MySQL?

Bagaimanakah Saya Boleh Memasukkan Sebilangan Besar Baris dengan Cekap ke dalam Pangkalan Data MySQL?

Susan Sarandon
Lepaskan: 2024-11-24 02:28:09
asal
1003 orang telah melayarinya

How Can I Efficiently Insert Large Numbers of Rows into a MySQL Database?

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();
        }
    }
}
Salin selepas log masuk

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan