假设您有一百万行要插入到远程数据库中。
不费吹灰之力,您已执行以下操作来提高性能:
- 重用单个 MySQL 连接
- 创建一个准备好的
MySqlCommand
,您将在所有插入中重复使用 - 用于
MySqlTransaction
防止每次插入后自动提交,并且仅transaction.Commit()
在完成批处理后调用。
问题很简单:MySQL Connector.NET 在这些情况下会自动执行事务批处理,还是应该将多行单独连接成一个INSERT INTO foo(bar) VALUES (..), (..), (..), (..), ...;
并在事务中执行多个?
在什么时候使用它成为一个好主意MySqlBulkLoader
?