Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengoptimumkan Sisipan Baris MySQL untuk Pengurusan Data yang Lebih Pantas?

Bagaimanakah Saya Boleh Mengoptimumkan Sisipan Baris MySQL untuk Pengurusan Data yang Lebih Pantas?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 17:56:11730semak imbas

How Can I Optimize MySQL Row Insertion for Faster Data Management?

Pemasukan Baris Dioptimumkan ke dalam Pangkalan Data MySQL

Prestasi penyisipan baris ke dalam pangkalan data MySQL adalah penting untuk pengurusan data yang cekap. Kaedah konvensional menggunakan pertanyaan sisipan individu boleh memakan masa. Berikut ialah pendekatan yang sangat dioptimumkan yang mempercepatkan proses pemasukan dengan ketara.

Daripada melaksanakan banyak penyataan INSERT individu, kaedah yang dipertingkat ini menggunakan penyataan INSERT berbilang baris tunggal untuk memasukkan berbilang baris secara serentak. Dengan mengelakkan overhed berulang dan mencipta kumpulan besar data untuk dimasukkan, pangkalan data boleh memproses operasi dengan lebih cekap.

Kod di bawah menunjukkan teknik ini:

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

Dengan memanfaatkan kaedah ini , penyisipan 100k baris boleh diselesaikan dalam masa 3 saat, peningkatan dramatik berbanding 40 yang asal detik. Pernyataan SQL yang dijana, seperti yang ditunjukkan di bawah, menunjukkan sisipan berbilang baris dalam satu pernyataan:

INSERT INTO User (FirstName, LastName) VALUES ('test','test'),('test','test'),... ;

Untuk memastikan integriti data dan mencegah serangan suntikan kod, kaedah MySqlHelper.EscapeString digunakan untuk melepaskan aksara khas dalam data yang dimasukkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Sisipan Baris MySQL untuk Pengurusan Data yang Lebih Pantas?. 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