ホームページ  >  記事  >  データベース  >  MySqlBulkLoader を使用して DataTable から MySQL への一括データ読み込みを最適化する方法

MySqlBulkLoader を使用して DataTable から MySQL への一括データ読み込みを最適化する方法

DDD
DDDオリジナル
2024-10-24 06:12:30918ブラウズ

How to Optimize Bulk Data Loading into MySQL from DataTable with MySqlBulkLoader?

パフォーマンスの最適化を使用して DataTable を MySQL に一括コピーする

質問:

以前は Microsoft SQL Server を使用しており、一括データ挿入SqlBulkCopy クラスを使用してシームレスに実行されました。パフォーマンスの懸念を考慮して、同様の機能を MySQL でどのように実現できますか?

答え:

仮定を避ける:

強調証拠に基づく意思決定の重要性について、この応答は、MySQL への一括ロードの前に DataTable を CSV ファイルに書き込むとパフォーマンスが低下するという仮定の間違いを暴きます。

MySqlBulkLoader は優れています:

一連のテストでは、MySqlBulkLoader クラスはトランザクション内での標準的な MySQL データ アダプターの更新を大幅に上回り、わずか 5 ~ 6 秒で 100,000 行の挿入を完了しました。

コード ソリューション:

MySqlBulkLoader を効果的に利用するには:

<code class="csharp">// Create a temporary CSV file
string tempCsvFileSpec = @"C:\Users\Gord\Desktop\dump.csv";
using (StreamWriter writer = new StreamWriter(tempCsvFileSpec))
{
    Rfc4180Writer.WriteDataTable(rawData, writer, false);
}

// Perform bulk loading with MySqlBulkLoader
var msbl = new MySqlBulkLoader(conn);
msbl.TableName = "testtable";
msbl.FileName = tempCsvFileSpec;
msbl.FieldTerminator = ",";
msbl.FieldQuotationCharacter = '"';
msbl.Load();

// Cleanup
System.IO.File.Delete(tempCsvFileSpec);</code>

以上がMySqlBulkLoader を使用して DataTable から MySQL への一括データ読み込みを最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。