問題:
之前使用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中文網其他相關文章!