Menyalin Pukal Jadual Data ke MySQL dengan Prestasi Optimum
Memindahkan projek daripada Microsoft SQL Server ke MySQL boleh menghadapi cabaran dalam penyalinan data pukal. Ini kerana API SqlBulkCopy biasa yang terdapat dalam sistem Microsoft tidak tersedia secara langsung untuk MySQL.
Alternatif Salin Pukal
Satu alternatif ialah menggunakan kelas MySqlBulkLoader, tetapi ini melibatkan pengeksportan data ke fail CSV dan kemudian mengimportnya, yang boleh mengakibatkan kesesakan prestasi.
Kaedah Dioptimumkan dengan MySqlDataAdapter
Walau bagaimanapun, pendekatan yang lebih cekap boleh dimanfaatkan dengan menggunakan kaedah MySqlDataAdapter's Update() dalam Transaksi. Kaedah ini membenarkan sisipan kelompok dengan saiz kelompok kemas kini boleh dikonfigurasikan, mengurangkan masa pelaksanaan dengan ketara.
Contoh Kod
Berikut ialah contoh yang dioptimumkan menggunakan pendekatan MySqlDataAdapter:
<code class="csharp">using (MySqlTransaction tran = conn.BeginTransaction(System.Data.IsolationLevel.Serializable)) { using (MySqlCommand cmd = new MySqlCommand()) { cmd.Connection = conn; cmd.Transaction = tran; cmd.CommandText = "SELECT * FROM testtable"; using (MySqlDataAdapter da = new MySqlDataAdapter(cmd)) { da.UpdateBatchSize = 1000; using (MySqlCommandBuilder cb = new MySqlCommandBuilder(da)) { da.Update(rawData); tran.Commit(); } } } }</code>
Perbandingan dengan MySqlBulkLoader
Jika dibandingkan dengan menggunakan MySqlBulkLoader, pendekatan MySqlDataAdapter mengatasi prestasi dari segi kelajuan pelaksanaan. Ujian dengan sisipan pukal sebanyak 100,000 baris menunjukkan masa pelaksanaan selama 30 saat menggunakan MySqlDataAdapter, manakala MySqlBulkLoader menyelesaikan proses dalam 5-6 saat.
Kesimpulan
>Atas ialah kandungan terperinci Bagaimana untuk Menyalin Pukal Jadual Data ke MySQL dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!