最佳化MySQL 行插入:實現超快速批次插入
在本文中,我們解決了在MySQL 中高效插入行的需求資料庫。我們提出了一個最佳化的解決方案,可以顯著減少插入時間,提高資料庫的整體效能。
背景
許多開發人員在將大量資料插入 MySQL 時遇到效能瓶頸。雖然使用單一 SQL 語句的基於循環的方法是有效的,但它們可能效率低且緩慢。
問題語句
在提供的範例中,基於循環的程式碼採用40 秒將 100,000 行插入 MySQL資料庫,凸顯了對更高效的需求
解決方案
我們使用批量插入技術替換基於循環的方法,使用StringBuilder 構建包含一次插入多行的單個SQL 語句。透過利用這種方法,我們實現了顯著的效能提升。
範例程式碼
最佳化後的程式碼如下:
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(); } } }
結果
使用批次🎜>結果
使用批次🎜>結果
安全性:
我們加入了 MySqlHelper.EscapeString以防止程式碼調優:可以透過調整批次大小和最佳化資料庫索引來進一步微調效能。 結論 透過實作這種大量插入技術,開發人員可以顯著提高 MySQL 資料庫插入操作的效率。此方法減少了插入時間,提高了整體效能,並透過添加的安全措施確保資料完整性。以上是如何實作MySQL超快速批次插入行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!