2

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

不费吹灰之力,您已执行以下操作来提高性能:

  1. 重用单个 MySQL 连接
  2. 创建一个准备好的MySqlCommand,您将在所有插入中重复使用
  3. 用于MySqlTransaction防止每次插入后自动提交,并且仅transaction.Commit()在完成批处理后调用。

问题很简单:MySQL Connector.NET 在这些情况下会自动执行事务批处理,还是应该将多行单独连接成一个INSERT INTO foo(bar) VALUES (..), (..), (..), (..), ...;并在事务中执行多个?

在什么时候使用它成为一个好主意MySqlBulkLoader

4

1 回答 1

0

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

于 2013-05-08T16:37:49.223 回答