Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencapai Penyisipan Pukal Sangat Pantas Baris ke dalam MySQL?

Bagaimanakah Saya Boleh Mencapai Penyisipan Pukal Sangat Pantas Baris ke dalam MySQL?

Patricia Arquette
Lepaskan: 2024-11-24 20:19:14
asal
751 orang telah melayarinya

How Can I Achieve Ultra-Fast Bulk Insertion of Rows into MySQL?

Mengoptimumkan Sisipan Baris MySQL: Mencapai Sisipan Pukal Sangat Pantas

Dalam artikel ini, kami menangani keperluan untuk sisipan baris yang cekap ke dalam MySQL pangkalan data. Kami membentangkan penyelesaian yang dioptimumkan yang secara mendadak mengurangkan masa pemasukan, meningkatkan prestasi pangkalan data keseluruhan.

Latar Belakang

Ramai pembangun menghadapi kesesakan prestasi semasa memasukkan volum besar data ke dalam MySQL. Walaupun pendekatan berasaskan gelung menggunakan pernyataan SQL individu berfungsi, ia boleh menjadi tidak cekap dan perlahan.

Pernyataan Masalah

Dalam contoh yang disediakan, kod berasaskan gelung mengambil 40 saat untuk memasukkan 100,000 baris ke dalam pangkalan data MySQL, menyerlahkan keperluan untuk yang lebih cekap pendekatan.

Penyelesaian

Kami menggantikan pendekatan berasaskan gelung dengan teknik sisipan pukal menggunakan StringBuilder untuk membina satu pernyataan SQL yang mengandungi berbilang baris untuk dimasukkan sekali gus . Dengan menggunakan pendekatan ini, kami mencapai peningkatan prestasi yang ketara.

Kod Contoh

Kod yang dioptimumkan disediakan di bawah:

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

Keputusan

Menggunakan pendekatan sisipan pukal, masa sisipan untuk 100,000 baris menurun daripada 40 saat kepada 3 saat sahaja, menunjukkan peningkatan prestasi 93% yang luar biasa.

Pertimbangan Tambahan

  1. Keselamatan:Keselamatan:
  2. > Kami telah menambah MySqlHelper.EscapeString untuk menghalang kod suntikan.
  3. Penalaan:
  4. Anda boleh memperhalusi lagi prestasi dengan melaraskan saiz kelompok dan mengoptimumkan indeks pangkalan data.

Kesimpulan

Dengan melaksanakan teknik sisipan pukal ini, pembangun boleh meningkatkan kecekapan pangkalan data MySQL mereka dengan ketara operasi sisipan. Kaedah ini mengurangkan masa pemasukan, meningkatkan prestasi keseluruhan dan memastikan integriti data dengan langkah keselamatan tambahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Penyisipan Pukal Sangat Pantas Baris ke dalam 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