MySQLi에서 대량 INSERT 작업 최적화: 안전하고 효율적인 접근 방식
대량의 데이터를 MySQL 데이터베이스에 삽입하려면 다음을 보장하는 기술이 필요합니다. 보안과 성능 모두. 이 기사에서는 SQL 삽입 위험을 완화하면서 테이블에 여러 행을 효율적으로 삽입하는 방법을 살펴봅니다.
루프 내에서 준비된 여러 명령문을 활용하는 제공된 코드는 성능 병목 현상과 잠재적인 스택 오버플로 문제를 일으킬 수 있습니다. . 더 나은 접근 방식은 삽입을 트랜잭션 내에 배치하고 준비된 문과 매개변수 바인딩을 루프 외부로 이동하는 것입니다.
$mysqli->query("START TRANSACTION"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); foreach ($array as $one) { $stmt->execute(); } $mysqli->query("COMMIT");
트랜잭션은 대량 삽입에 대해 다음과 같은 몇 가지 이점을 제공합니다.
성능 테스트에서 삽입을 트랜잭션으로 이동하면 속도가 크게 향상되었습니다. 10,000회 반복의 경우 실행 시간은 트랜잭션이 없는 경우 226초에서 트랜잭션이 있는 경우 단 2초로 단축되었습니다.
이 접근 방식은 SQL의 잠재적인 위험을 완화하면서 대규모 데이터 세트를 MySQL 데이터베이스에 삽입하기 위한 안전하고 효율적인 메커니즘을 제공합니다. 주입과 성능 병목 현상이 발생합니다.
위 내용은 MySQLi에서 대량 INSERT 작업을 안전하고 효율적으로 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!