Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine große Anzahl von Zeilen effizient in eine MySQL-Datenbank einfügen?
Effiziente Zeileneinfügung in MySQL-Datenbanken
Das Einfügen einer großen Anzahl von Zeilen in eine MySQL-Datenbank kann eine zeitaufwändige Aufgabe sein, insbesondere bei der Verwendung traditionelle Methoden wie einreihige Einsätze. Um die Leistung zu steigern, sollten Sie den Einsatz effizienterer Techniken in Betracht ziehen.
Einzelzeileneinfügung vs. Masseneinfügungen
Typischerweise werden einzeilige Einfügungen verwendet, um einzelne Datensätze nacheinander einzufügen eine Zeit. Obwohl dieser Ansatz unkompliziert ist, kann er bei der Verarbeitung großer Datenmengen ineffizient werden. Erwägen Sie stattdessen die Verwendung von Masseneinfügungen, um mehrere Zeilen gleichzeitig einzufügen. Durch die Verkettung mehrerer Zeilenwerte in einer einzigen INSERT-Anweisung können erhebliche Zeiteinsparungen erzielt werden.
Code-Implementierung
Der folgende Code zeigt einen Masseneinfügungsansatz, der eine erhebliche Verbesserung ermöglichen kann Einfügegeschwindigkeit:
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(); } } }
Dieser Code durchläuft die einzufügenden Zeilen und erstellt eine Massen-INSERT-Anweisung durch Verketten der einzelnen Zeilen Zeilenwerte. Die resultierende Anweisung fügt alle Zeilen gleichzeitig ein, was zu erheblichen Leistungssteigerungen führt.
Eingabedaten aus Sicherheitsgründen maskieren
Es ist wichtig zu beachten, dass Masseneinfügungen potenzielle Sicherheitslücken aufdecken können. Um eine SQL-Injection zu verhindern, ist es wichtig, alle Benutzereingaben zu maskieren, bevor sie in die INSERT-Anweisung aufgenommen werden. Wie im obigen Code gezeigt, kann MySqlHelper.EscapeString für diesen Zweck verwendet werden.
Das obige ist der detaillierte Inhalt vonWie kann ich eine große Anzahl von Zeilen effizient in eine MySQL-Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!