Допустим, у вас есть миллион строк для вставки в удаленную базу данных.
Для повышения производительности вы сделали следующее:
- Повторное использование одного соединения MySQL
- Создание одного подготовленного
MySqlCommand
, который вы будете повторно использовать для всех своих вставок. - Использование
MySqlTransaction
для предотвращения автоматической фиксации после каждой вставки и вызовtransaction.Commit()
только после завершения работы с пакетом.
Вопрос достаточно прост: MySQL Connector.NET автоматически выполняет пакетную обработку транзакций в этих обстоятельствах, или вы должны отдельно объединить несколько строк в один INSERT INTO foo(bar) VALUES (..), (..), (..), (..), ...;
и выполнить несколько из них в своей транзакции?
В какой момент лучше использовать MySqlBulkLoader
вместо этого?