Трудно сказать, не видя ваш код, но я предполагаю, что вы выполняете операторы по одному. Таким образом, вы получите одну поездку туда и обратно за каждую выписку.
В MSSql вы можете выполнить несколько вставок в одном выражении:
cmd.ExecuteNonQuery "insert table values (1) insert table values (2)"
Таким образом, вы можете создать большую строку и выполнить ее (я думаю, что у нее будет ограничение), я предполагаю, что это будет работать для MySQL.
Также в MSSQL у вас есть пакетный инсертор (поиск «SqlBulkCopy»), в MySQL возможно попробуйте загрузка данных из временного файла .