2

リモート データベースに挿入する行が 100 万行あるとします。

簡単に言えば、パフォーマンスを向上させるために次のことを行いました。

  1. 単一の MySQL 接続の再利用
  2. MySqlCommandすべての挿入に再利用する単一の準備済みの作成
  3. MySqlTransaction挿入ごとに自動コミットを防ぎ、バッチが完了したときにのみ呼び出すために使用しtransaction.Commit()ます。

質問は単純です。MySQL Connector.NET は、このような状況でトランザクションのバッチ処理を自動的に実行しますか? それとも、複数の行を 1 つに個別に連結INSERT INTO foo(bar) VALUES (..), (..), (..), (..), ...;し、トランザクションでこれらの複数を実行する必要がありますか?

どの時点で、MySqlBulkLoader代わりに使用することをお勧めしますか?

4

1 に答える 1

0

答え: いいえ、そうではありません。コンパイルされたステートメントを使用する場合でも、パラメーターを追加するたびに、データがネットワーク経由で送信され、実行時にさらにリモート通信が行われます。

于 2013-05-08T16:37:49.223 に答える