.NET MySqlTransactions是否在本地批处理/缓冲?

时间:2013-03-28 14:15:18

标签: c# mysql performance database-performance mysql-connector

假设您有一百万行要插入远程数据库。

作为一个明智的选择,您已经完成了以下工作以提高性能:

  1. 重用单个MySQL连接
  2. 创建一个准备好的MySqlCommand,您将为所有插入重复使用
  3. 使用MySqlTransaction阻止每次插入后自动提交,并在完成批处理后仅调用transaction.Commit()
  4. 问题很简单:MySQL Connector.NET是否会在这些情况下自动执行事务批处理,或者您应该将多行单独连接到一个INSERT INTO foo(bar) VALUES (..), (..), (..), (..), ...;并在事务中执行多个这些行?

    在什么时候使用MySqlBulkLoader代替?

1 个答案:

答案 0 :(得分:0)

答案:不,他们不是。即使使用编译语句,每次添加参数时,数据都会通过网络发送,然后在执行时进行更远程的通信。