MySQL 데이터베이스의 효율적인 행 삽입
MySQL 데이터베이스에 많은 수의 행을 삽입하는 것은 시간이 많이 걸리는 작업일 수 있습니다. 특히 다음을 사용하는 경우에는 더욱 그렇습니다. 단일 행 삽입과 같은 전통적인 방법. 성능을 향상하려면 보다 효율적인 기술을 사용하는 것이 좋습니다.
단일 행 삽입과 대량 삽입
일반적으로 단일 행 삽입은 개별 레코드를 한 번에 하나씩 삽입하는 데 사용됩니다. 시간. 이 접근 방식은 간단하지만 대규모 데이터 세트를 처리할 때는 비효율적일 수 있습니다. 대신, 여러 행을 동시에 삽입하려면 대량 삽입을 사용하는 것이 좋습니다. 여러 행 값을 단일 INSERT 문으로 연결하면 상당한 시간을 절약할 수 있습니다.
코드 구현
다음 코드는 크게 개선할 수 있는 대량 삽입 접근 방식을 보여줍니다. 삽입 속도:
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(); } } }
이 코드는 삽입할 행을 반복하고 다음과 같이 대량 INSERT 문을 구성합니다. 개별 행 값을 연결합니다. 결과 문은 모든 행을 동시에 삽입하여 상당한 성능 향상을 가져옵니다.
보안을 위한 입력 데이터 이스케이프
대량 삽입은 잠재적인 보안 취약점을 노출할 수 있다는 점에 유의하는 것이 중요합니다. SQL 주입을 방지하려면 INSERT 문에 사용자 입력을 포함하기 전에 사용자 입력을 이스케이프 처리하는 것이 중요합니다. 위 코드에서 볼 수 있듯이 MySqlHelper.EscapeString을 이러한 목적으로 사용할 수 있습니다.
위 내용은 MySQL 데이터베이스에 많은 수의 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!