MySqlBulkLoader を使用して DataTable を MySQL に一括コピーする
概要
アプリケーションの移行時Microsoft SQL Server から MySQL への一括コピー操作では、共通の課題が発生します。この記事では、MySqlBulkLoader クラスを使用して一括データ転送を行う方法を検討することで、この問題に対処することに焦点を当てます。
問題
System.Data.SqlClient では、SqlBulkCopy クラスSQL Server テーブルにデータを一括挿入する効率的な方法を提供します。ただし、MySQL には、このクラスと直接同等のものはありません。
提案された解決策
MySQL に一括コピーするための代替アプローチは、MySql の MySqlBulkLoader クラスを使用することです。 .データパッケージ。このクラスにより、区切り文字で区切られたファイルから MySQL テーブルへのデータの一括挿入が可能になります。
実装
MySqlBulkLoader を使用して一括コピーを実装するには、次の手順に従います。
<code class="csharp">string tempCsvFileSpec = @"C:\Users\Gord\Desktop\dump.csv"; using (StreamWriter writer = new StreamWriter(tempCsvFileSpec)) { Rfc4180Writer.WriteDataTable(rawData, writer, false); }</code>
<code class="csharp">var msbl = new MySqlBulkLoader(conn); msbl.TableName = "testtable"; msbl.FileName = tempCsvFileSpec; msbl.FieldTerminator = ","; msbl.FieldQuotationCharacter = '"';</code>
<code class="csharp">msbl.Load();</code>
<code class="csharp">System.IO.File.Delete(tempCsvFileSpec);</code>
パフォーマンス考慮事項
一時 CSV ファイルの使用によるパフォーマンスの問題についての当初の懸念には根拠がないことが判明しました。テストの結果、MySqlBulkLoader を使用した一括コピーは、標準の MySqlDataAdapter#Update() メソッドを使用するよりもはるかに高速であることが示されました。
結論
これらの手順に従うことで、開発者は次のことができます。 MySqlBulkLoader クラスを使用して、DataTable から MySQL テーブルへの効率的な一括コピーを実現します。これにより、アプリケーションを SQL Server から MySQL に移行するための信頼性とパフォーマンスに優れたソリューションが提供されます。
以上がMySqlBulkLoader を使用して DataTable を MySQL に一括コピーする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。