Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengoptimumkan Menyalin Pukal Jadual Data ke dalam MySQL Menggunakan Fail CSV Sementara?

Bagaimana untuk Mengoptimumkan Menyalin Pukal Jadual Data ke dalam MySQL Menggunakan Fail CSV Sementara?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 06:11:02701semak imbas

How to Optimize Bulk Copying DataTables into MySQL Using a Temporary CSV File?

Salin Pukal Jadual Data ke dalam MySQL Menggunakan Fail CSV Sementara

Apabila berhijrah ke MySQL daripada Microsoft SQL Server, anda mungkin menghadapi cabaran secara pukal menyalin menggunakan tulis Jadual Data langsung. Walaupun kelas SqlBulkCopy tidak tersedia secara asli dalam MySQL, ia patut dipertimbangkan untuk menggunakan fail CSV sementara sebagai perantara untuk prestasi optimum.

Satu andaian yang perlu dielakkan ialah pemuatan pukal melalui fail CSV sememangnya akan membawa kepada kelemahan. prestasi. Ujian empirikal telah menunjukkan bahawa menggunakan kelas MySqlBulkLoader boleh mengurangkan masa pemasukan dengan ketara berbanding kemas kini langsung melalui MySqlDataAdapter.

Untuk mencapainya, ikuti langkah berikut:

  1. Tulis kandungan DataTable ke fail CSV sementara menggunakan penulis CSV yang sesuai.
  2. Mulakan objek MySqlBulkLoader baharu dan tetapkan sifatnya:

    • TableName untuk dipadankan dengan jadual sasaran
    • Nama Fail untuk menunjuk ke fail CSV
    • FieldTerminator dan FieldQuotationCharacter mengikut keperluan
  3. Panggil kaedah Load() untuk memuatkan data secara pukal daripada fail CSV
  4. Padamkan fail CSV sementara selepas pemuatan selesai

Kod contoh:

<code class="csharp">string tempCsvFileSpec = @"C:\Users\Gord\Desktop\dump.csv";
using (StreamWriter writer = new StreamWriter(tempCsvFileSpec))
{
    Rfc4180Writer.WriteDataTable(rawData, writer, false);
}
var msbl = new MySqlBulkLoader(conn);
msbl.TableName = "testtable";
msbl.FileName = tempCsvFileSpec;
msbl.FieldTerminator = ",";
msbl.FieldQuotationCharacter = '"';
msbl.Load();
System.IO.File.Delete(tempCsvFileSpec);</code>

Dengan memanfaatkan kelas MySQLBulkLoader dan fail CSV sementara, anda boleh mencapai penyalinan pukal yang cekap bagi DataTables ke dalam MySQL dengan prestasi yang lebih baik berbanding dengan kemas kini langsung.

Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Menyalin Pukal Jadual Data ke dalam MySQL Menggunakan Fail CSV Sementara?. 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