小编典典
因为我认为性能会很差,所以我不想将DataTable写入CSV文件并使用MySqlBulkLoader类从那里进行插入。
不要根据无根据的假设排除可能的解决方案。我只是测试的从100,000行插入System.Data.DataTable使用标准到MySQL表MySqlDataAdapter#Update()内Transaction。持续大约需要30秒才能运行:
using (MySqlTransaction tran = conn.BeginTransaction(System.Data.IsolationLevel.Serializable))
{
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.Connection = conn;
cmd.Transaction = tran;
cmd.CommandText = "SELECT * FROM testtable";
using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
{
da.UpdateBatchSize = 1000;
using (MySqlCommandBuilder cb = new MySqlCommandBuilder(da))
{
da.Update(rawData);
tran.Commit();
}
}
}
}
(我尝试了几个不同的值,UpdateBatchSize但它们似乎对经过时间没有重大影响。)
相比之下,