sql >> Databáze >  >> RDS >> Mysql

Nejúčinnější způsob vkládání řádků do databáze MySQL

Zde je můj kód pro "vícenásobné vložení".

Vložení 100 000 řádků trvalo namísto 40 sekund pouze 3 sekundy !!

public static void BulkToMySQL()
{
    string ConnectionString = "server=192.168.1xxx";
    StringBuilder sCommand = new StringBuilder("INSERT INTO User (FirstName, LastName) VALUES ");           
    using (MySqlConnection mConnection = new MySqlConnection(ConnectionString))
    {
        List<string> Rows = new List<string>();
        for (int i = 0; i < 100000; i++)
        {
            Rows.Add(string.Format("('{0}','{1}')", MySqlHelper.EscapeString("test"), MySqlHelper.EscapeString("test")));
        }
        sCommand.Append(string.Join(",", Rows));
        sCommand.Append(";");
        mConnection.Open();
        using (MySqlCommand myCmd = new MySqlCommand(sCommand.ToString(), mConnection))
        {
            myCmd.CommandType = CommandType.Text;
            myCmd.ExecuteNonQuery();
        }
    }
}

Vytvořený příkaz SQL vypadá takto:

INSERT INTO User (FirstName, LastName) VALUES ('test','test'),('test','test'),... ;

Aktualizovat :Díky Salman A Přidal jsem MySQLHelper.EscapeString abyste se vyhnuli vkládání kódu, který se interně používá při použití parametrů.



  1. Čištění sloupce Oracle Date

  2. MySQL, je lepší vložit NULL nebo prázdný řetězec?

  3. Vraťte Unixové časové razítko v PostgreSQL

  4. PostgreSQL smaže veškerý obsah