一時 CSV ファイルを使用して DataTable を MySQL に一括コピーする
Microsoft SQL Server から MySQL に移行する場合、一括コピーに関する問題が発生する可能性があります。 DataTable への直接書き込みを使用してコピーします。 SqlBulkCopy クラスは MySQL ではネイティブに使用できませんが、最適なパフォーマンスを得るために一時 CSV ファイルを仲介として使用することを検討する価値があります。
避けるべき仮定の 1 つは、CSV ファイルによる一括読み込みは本質的にパフォーマンスの低下につながるということです。パフォーマンス。実証テストの結果、MySqlBulkLoader クラスを使用すると、MySqlDataAdapter を介して直接更新する場合と比較して、挿入時間を大幅に短縮できることがわかりました。
これを実現するには、次の手順に従います。
新しい MySqlBulkLoader オブジェクトを初期化し、そのプロパティを設定します:
コード例:
<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>
MySQLBulkLoader クラスと一時 CSV ファイルを活用することで、DataTable の効率的な一括コピーを実現できます。直接更新と比較してパフォーマンスが向上して MySQL に変換されます。
以上が一時 CSV ファイルを使用して MySQL への DataTable の一括コピーを最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。