Rumah  >  Artikel  >  pangkalan data  >  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
Susan Sarandonasal
2024-11-24 02:28:09955semak imbas

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();
        }
    }
}

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!

Kenyataan:
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