C#和MySQL是在大數據方面互相配合非常緊密的語言和數據庫。在編寫C#代碼的過程中,我們經常需要使用MySQL來保存數據。但是,在大批量插入數據時,我們需要采取一定的措施來優化代碼的性能。
下面是一些關于如何在C#中進行MySQL大批量插入的技巧:
//首先建立數據庫連接 MySqlConnection conn = new MySqlConnection("server=localhost;user id=root;password=123456;database=test"); //打開連接 conn.Open(); //開始事務 MySqlTransaction transaction = conn.BeginTransaction(); //執行插入操作 MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; cmd.Transaction = transaction; //以循環的方式插入多條數據 for(int i=0;i<1000000;i++){ cmd.CommandText = "insert into test_table(id,name) values(" + i.ToString() + ",'name" + i.ToString() + "')"; cmd.ExecuteNonQuery(); } //提交事務 transaction.Commit(); //關閉連接 conn.Close();
代碼中我們使用事務的方式進行插入操作,這樣可以提高插入操作的性能。同時,我們可以使用批量插入的方式來優化代碼,如下所示:
//首先建立數據庫連接 MySqlConnection conn = new MySqlConnection("server=localhost;user id=root;password=123456;database=test"); //打開連接 conn.Open(); //開始事務 MySqlTransaction transaction = conn.BeginTransaction(); //定義批量插入語句 MySqlCommand cmd = new MySqlCommand("insert into test_table(id,name) values(@id,@name)",conn); cmd.Transaction = transaction; //設置參數 cmd.Parameters.Add("@id",MySqlDbType.Int32); cmd.Parameters.Add("@name",MySqlDbType.VarChar); //以循環的方式插入多條數據 for(int i=0;i<1000000;i++){ cmd.Parameters["@id"].Value = i; cmd.Parameters["@name"].Value = "name" + i.ToString(); cmd.ExecuteNonQuery(); } //提交事務 transaction.Commit(); //關閉連接 conn.Close();
這種方式可以將多條插入SQL語句合并成一個SQL語句,大大提高了插入操作的性能。
上一篇mysql jd