Я прочитал много вопросов об этом, но я не мог найти тот, который достаточно быстр. Я думаю, что есть лучшие способы вставить много строк в базу данных MySQL
Я использую следующий код для вставки 100k в мою MySQL-базу данных:
public static void CSVToMySQL()
{
string ConnectionString = "server=192.168.1xxx";
string Command = "INSERT INTO User (FirstName, LastName ) VALUES (@FirstName, @LastName);";
using (MySqlConnection mConnection = new MySqlConnection(ConnectionString))
{
mConnection.Open();
for(int i =0;i< 100000;i++) //inserting 100k items
using (MySqlCommand myCmd = new MySqlCommand(Command, mConnection))
{
myCmd.CommandType = CommandType.Text;
myCmd.Parameters.AddWithValue("@FirstName", "test");
myCmd.Parameters.AddWithValue("@LastName", "test");
myCmd.ExecuteNonQuery();
}
}
}
Это занимает около 100 тыс. строк около 40 секунд. Как я могу сделать это быстрее или немного более эффективным?
Возможно, быстрее вставить несколько строк через DataTable/DataAdapter или сразу:
INSERT INTO User (Fn, Ln) VALUES (@Fn1, @Ln1), (@Fn2, @Ln2)...
Из-за проблем с безопасностью я не могу загрузить данные в файл и MySQLBulkLoad.