MySQLi의 대량 값 삽입을 위한 향상된 기술
MySQL 데이터베이스에 상당수의 값을 안전하게 삽입해야 하는 작업에 직면했을 때, 개발자는 종종 반복적으로 준비된 문을 사용하는데, 이는 대규모 데이터 세트의 경우 시간이 많이 걸릴 수 있습니다. 이 기사에서는 SQL 주입 보안을 손상시키지 않으면서 성능을 향상시키는 기술을 살펴봅니다.
문제: 스택 오버플로 및 느린 삽입
일반적인 접근 방식은 SQL 주입 보안 내부에서 준비된 문을 활용하는 것입니다. 루프를 통해 각 값을 개별적으로 삽입합니다. 그러나 이 방법은 데이터세트가 큰 경우 스택 오버플로 또는 실행 시간 저하로 이어질 수 있습니다.
$array = ["array", "with", "about", "2000", "values"]; foreach ($array as $one) { $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $stmt->execute(); $stmt->close(); }
해결책: 트랜잭션 및 최적화된 실행
위의 코드에서는 트랜잭션과 향상된 실행을 조합하여 사용할 수 있습니다. 전략:
$array = ["array", "with", "about", "2000", "values"]; $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");
구현 세부 정보:
성능 평가
10,000회 반복 테스트는 트랜잭션 사용 시 상당한 성능 향상을 보여줍니다. :
이 최적화 기술은 2배의 속도 증가를 제공하므로 MySQL에서 대량 값 삽입을 위한 효율적이고 안전한 솔루션이 됩니다. MySQLi를 사용하는 데이터베이스.
위 내용은 속도와 보안을 위해 MySQLi에 대한 대량 데이터 삽입을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!